alloy-runtime-cli 0.2.44__tar.gz → 0.2.46__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 (484) hide show
  1. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/PKG-INFO +14 -3
  2. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/README.md +11 -0
  3. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/alloy_runtime_cli.egg-info/PKG-INFO +14 -3
  4. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/alloy_runtime_cli.egg-info/SOURCES.txt +4 -0
  5. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/alloy_runtime_cli.egg-info/requires.txt +2 -2
  6. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/get/presenter.py +2 -1
  7. alloy_runtime_cli-0.2.46/cli/commands/agents/tool_formatting.py +25 -0
  8. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/update/fields.py +3 -3
  9. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/status/presenter.py +18 -0
  10. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/text/command.py +9 -0
  11. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/text/presenter.py +66 -2
  12. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/shared_flags.py +6 -0
  13. alloy_runtime_cli-0.2.46/cli/commands/templates/validate/command.py +82 -0
  14. alloy_runtime_cli-0.2.46/cli/commands/templates/validate/presenter.py +126 -0
  15. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/agent_tool_editor.py +24 -5
  16. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/main.py +2 -0
  17. alloy_runtime_cli-0.2.46/cli/tui/widgets/__init__.py +0 -0
  18. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/pyproject.toml +3 -3
  19. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/MANIFEST.in +0 -0
  20. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/alloy_runtime_cli.egg-info/dependency_links.txt +0 -0
  21. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/alloy_runtime_cli.egg-info/entry_points.txt +0 -0
  22. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/alloy_runtime_cli.egg-info/top_level.txt +0 -0
  23. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/__init__.py +0 -0
  24. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/__init__.py +0 -0
  25. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/admin/__init__.py +0 -0
  26. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/admin/bootstrap_command.py +0 -0
  27. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/admin/credentials/__init__.py +0 -0
  28. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/admin/credentials/create/__init__.py +0 -0
  29. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/admin/credentials/create/command.py +0 -0
  30. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/admin/credentials/create/presenter.py +0 -0
  31. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/admin/credentials/grant/__init__.py +0 -0
  32. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/admin/credentials/grant/command.py +0 -0
  33. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/admin/credentials/grant/fields.py +0 -0
  34. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/admin/credentials/grant/presenter.py +0 -0
  35. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/__init__.py +0 -0
  36. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/create/__init__.py +0 -0
  37. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/create/command.py +0 -0
  38. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/create/fields.py +0 -0
  39. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/create/presenter.py +0 -0
  40. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/delete/__init__.py +0 -0
  41. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/delete/command.py +0 -0
  42. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/delete/presenter.py +0 -0
  43. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/get/command.py +0 -0
  44. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/list/__init__.py +0 -0
  45. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/list/command.py +0 -0
  46. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/list/presenter.py +0 -0
  47. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/update/__init__.py +0 -0
  48. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/update/command.py +0 -0
  49. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/agents/update/presenter.py +0 -0
  50. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/api_keys/__init__.py +0 -0
  51. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/api_keys/create/__init__.py +0 -0
  52. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/api_keys/create/command.py +0 -0
  53. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/api_keys/create/presenter.py +0 -0
  54. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/audio/__init__.py +0 -0
  55. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/audio/transcribe/__init__.py +0 -0
  56. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/audio/transcribe/command.py +0 -0
  57. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/audio/transcribe/presenter.py +0 -0
  58. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/auth/__init__.py +0 -0
  59. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/auth/login/__init__.py +0 -0
  60. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/auth/login/command.py +0 -0
  61. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/auth/signup/__init__.py +0 -0
  62. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/auth/signup/command.py +0 -0
  63. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/__init__.py +0 -0
  64. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/__init__.py +0 -0
  65. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/by_agent/__init__.py +0 -0
  66. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/by_agent/command.py +0 -0
  67. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/by_agent/presenter.py +0 -0
  68. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/by_model/__init__.py +0 -0
  69. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/by_model/command.py +0 -0
  70. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/by_model/presenter.py +0 -0
  71. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/daily/__init__.py +0 -0
  72. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/daily/command.py +0 -0
  73. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/daily/presenter.py +0 -0
  74. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/summary/__init__.py +0 -0
  75. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/summary/command.py +0 -0
  76. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/costs/summary/presenter.py +0 -0
  77. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/projects/__init__.py +0 -0
  78. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/projects/create/__init__.py +0 -0
  79. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/projects/create/command.py +0 -0
  80. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/projects/create/presenter.py +0 -0
  81. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/projects/get/__init__.py +0 -0
  82. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/projects/get/command.py +0 -0
  83. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/projects/get/presenter.py +0 -0
  84. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/projects/list/__init__.py +0 -0
  85. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/projects/list/command.py +0 -0
  86. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/billing/projects/list/presenter.py +0 -0
  87. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/__init__.py +0 -0
  88. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/delete/__init__.py +0 -0
  89. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/delete/command.py +0 -0
  90. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/delete/presenter.py +0 -0
  91. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/edit/__init__.py +0 -0
  92. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/edit/command.py +0 -0
  93. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/edit/editor.py +0 -0
  94. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/edit/presenter.py +0 -0
  95. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/get/__init__.py +0 -0
  96. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/get/command.py +0 -0
  97. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/get/presenter.py +0 -0
  98. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/list/__init__.py +0 -0
  99. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/list/command.py +0 -0
  100. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/list/export_formatters.py +0 -0
  101. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/list/export_handler.py +0 -0
  102. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/content/list/presenter.py +0 -0
  103. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/__init__.py +0 -0
  104. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/create/__init__.py +0 -0
  105. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/create/command.py +0 -0
  106. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/create/fields.py +0 -0
  107. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/create/presenter.py +0 -0
  108. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/list/__init__.py +0 -0
  109. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/list/command.py +0 -0
  110. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/list/presenter.py +0 -0
  111. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/supported/command.py +0 -0
  112. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/supported/presenter.py +0 -0
  113. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/update/__init__.py +0 -0
  114. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/update/command.py +0 -0
  115. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/update/fields.py +0 -0
  116. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/credentials/update/presenter.py +0 -0
  117. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/flag_utils.py +0 -0
  118. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/__init__.py +0 -0
  119. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/cancel/__init__.py +0 -0
  120. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/cancel/command.py +0 -0
  121. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/cancel/presenter.py +0 -0
  122. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/status/__init__.py +0 -0
  123. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/status/command.py +0 -0
  124. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/text/__init__.py +0 -0
  125. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/text/concurrent_renderer.py +0 -0
  126. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/generate/text/stream_renderer.py +0 -0
  127. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/__init__.py +0 -0
  128. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/__init__.py +0 -0
  129. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/cluster/__init__.py +0 -0
  130. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/cluster/command.py +0 -0
  131. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/cluster/presenter.py +0 -0
  132. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/cluster_status/__init__.py +0 -0
  133. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/cluster_status/command.py +0 -0
  134. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/cluster_status/presenter.py +0 -0
  135. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/create/__init__.py +0 -0
  136. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/create/command.py +0 -0
  137. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/create/presenter.py +0 -0
  138. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/delete/__init__.py +0 -0
  139. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/delete/command.py +0 -0
  140. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/delete/presenter.py +0 -0
  141. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/get/__init__.py +0 -0
  142. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/get/command.py +0 -0
  143. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/get/presenter.py +0 -0
  144. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/list/__init__.py +0 -0
  145. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/list/command.py +0 -0
  146. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/list/presenter.py +0 -0
  147. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/status/__init__.py +0 -0
  148. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/status/command.py +0 -0
  149. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/status/presenter.py +0 -0
  150. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/update/__init__.py +0 -0
  151. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/update/command.py +0 -0
  152. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/collections/update/presenter.py +0 -0
  153. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/__init__.py +0 -0
  154. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/bulk_metadata/__init__.py +0 -0
  155. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/bulk_metadata/command.py +0 -0
  156. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/bulk_metadata/presenter.py +0 -0
  157. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/bulk_reingest_failed/command.py +0 -0
  158. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/bulk_reingest_failed/presenter.py +0 -0
  159. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/delete/__init__.py +0 -0
  160. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/delete/command.py +0 -0
  161. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/delete/presenter.py +0 -0
  162. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/get/__init__.py +0 -0
  163. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/get/command.py +0 -0
  164. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/get/presenter.py +0 -0
  165. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/ingest/__init__.py +0 -0
  166. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/ingest/command.py +0 -0
  167. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/ingest/presenter.py +0 -0
  168. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/list/__init__.py +0 -0
  169. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/list/command.py +0 -0
  170. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/list/presenter.py +0 -0
  171. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/reingest/__init__.py +0 -0
  172. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/reingest/command.py +0 -0
  173. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/reingest/presenter.py +0 -0
  174. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/update/__init__.py +0 -0
  175. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/update/command.py +0 -0
  176. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/documents/update/presenter.py +0 -0
  177. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/recover/__init__.py +0 -0
  178. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/recover/command.py +0 -0
  179. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/recover/presenter.py +0 -0
  180. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/search/__init__.py +0 -0
  181. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/search/command.py +0 -0
  182. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/search/presenter.py +0 -0
  183. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/__init__.py +0 -0
  184. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/create/__init__.py +0 -0
  185. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/create/command.py +0 -0
  186. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/create/presenter.py +0 -0
  187. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/delete/__init__.py +0 -0
  188. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/delete/command.py +0 -0
  189. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/delete/presenter.py +0 -0
  190. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/get/__init__.py +0 -0
  191. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/get/command.py +0 -0
  192. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/get/presenter.py +0 -0
  193. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/list/__init__.py +0 -0
  194. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/list/command.py +0 -0
  195. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/list/presenter.py +0 -0
  196. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/refresh/__init__.py +0 -0
  197. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/refresh/command.py +0 -0
  198. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/refresh/presenter.py +0 -0
  199. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/update/__init__.py +0 -0
  200. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/update/command.py +0 -0
  201. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/knowledge/synthesis/update/presenter.py +0 -0
  202. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/models/__init__.py +0 -0
  203. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/models/list/__init__.py +0 -0
  204. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/models/list/command.py +0 -0
  205. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/models/list/presenter.py +0 -0
  206. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/organizations/__init__.py +0 -0
  207. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/organizations/create/command.py +0 -0
  208. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/organizations/create/presenter.py +0 -0
  209. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/ping/command.py +0 -0
  210. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/__init__.py +0 -0
  211. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/approvals/__init__.py +0 -0
  212. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/approvals/decide_command.py +0 -0
  213. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/approvals/get_command.py +0 -0
  214. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/approvals/presenter.py +0 -0
  215. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/costs/__init__.py +0 -0
  216. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/costs/command.py +0 -0
  217. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/costs/daily_command.py +0 -0
  218. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/costs/daily_presenter.py +0 -0
  219. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/costs/presenter.py +0 -0
  220. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/create/__init__.py +0 -0
  221. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/create/command.py +0 -0
  222. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/create/presenter.py +0 -0
  223. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/env_vars/__init__.py +0 -0
  224. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/env_vars/command.py +0 -0
  225. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/env_vars/presenter.py +0 -0
  226. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/execute/__init__.py +0 -0
  227. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/execute/command.py +0 -0
  228. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/execute/presenter.py +0 -0
  229. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/__init__.py +0 -0
  230. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/costs/__init__.py +0 -0
  231. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/costs/command.py +0 -0
  232. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/costs/presenter.py +0 -0
  233. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/costs_by_model/__init__.py +0 -0
  234. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/costs_by_model/command.py +0 -0
  235. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/costs_by_model/presenter.py +0 -0
  236. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/costs_by_step/__init__.py +0 -0
  237. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/get_command.py +0 -0
  238. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/list_command.py +0 -0
  239. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/presenter.py +0 -0
  240. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/rerun_command.py +0 -0
  241. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/update/__init__.py +0 -0
  242. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/update/command.py +0 -0
  243. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/executions/update/presenter.py +0 -0
  244. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/get/__init__.py +0 -0
  245. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/get/command.py +0 -0
  246. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/get/presenter.py +0 -0
  247. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/list/__init__.py +0 -0
  248. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/list/command.py +0 -0
  249. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/list/presenter.py +0 -0
  250. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/__init__.py +0 -0
  251. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/create_command.py +0 -0
  252. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/create_presenter.py +0 -0
  253. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/delete_command.py +0 -0
  254. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/env_vars_command.py +0 -0
  255. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/env_vars_presenter.py +0 -0
  256. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/get_command.py +0 -0
  257. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/list_command.py +0 -0
  258. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/once_command.py +0 -0
  259. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/once_presenter.py +0 -0
  260. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/presenter.py +0 -0
  261. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/update_command.py +0 -0
  262. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/schedules/update_presenter.py +0 -0
  263. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/update/__init__.py +0 -0
  264. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/pipelines/update/command.py +0 -0
  265. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/render/__init__.py +0 -0
  266. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/render/html_to_image/__init__.py +0 -0
  267. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/render/html_to_image/command.py +0 -0
  268. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/__init__.py +0 -0
  269. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/create/__init__.py +0 -0
  270. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/create/command.py +0 -0
  271. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/create/presenter.py +0 -0
  272. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/delete/command.py +0 -0
  273. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/delete/presenter.py +0 -0
  274. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/get/__init__.py +0 -0
  275. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/get/command.py +0 -0
  276. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/get/presenter.py +0 -0
  277. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/list/__init__.py +0 -0
  278. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/list/command.py +0 -0
  279. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/list/presenter.py +0 -0
  280. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/update/__init__.py +0 -0
  281. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/update/command.py +0 -0
  282. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/schemas/update/presenter.py +0 -0
  283. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/__init__.py +0 -0
  284. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/delete/__init__.py +0 -0
  285. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/delete/command.py +0 -0
  286. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/delete/presenter.py +0 -0
  287. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/get/__init__.py +0 -0
  288. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/get/command.py +0 -0
  289. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/get/presenter.py +0 -0
  290. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/list/__init__.py +0 -0
  291. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/list/command.py +0 -0
  292. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/list/presenter.py +0 -0
  293. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/messages/__init__.py +0 -0
  294. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/messages/command.py +0 -0
  295. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sessions/messages/presenter.py +0 -0
  296. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sync/__init__.py +0 -0
  297. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sync/command.py +0 -0
  298. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/sync/presenter.py +0 -0
  299. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/__init__.py +0 -0
  300. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/create/__init__.py +0 -0
  301. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/create/command.py +0 -0
  302. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/delete/__init__.py +0 -0
  303. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/delete/command.py +0 -0
  304. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/delete/presenter.py +0 -0
  305. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/get/command.py +0 -0
  306. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/get/presenter.py +0 -0
  307. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/list/__init__.py +0 -0
  308. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/list/command.py +0 -0
  309. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/list/presenter.py +0 -0
  310. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/update/command.py +0 -0
  311. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tags/update/presenter.py +0 -0
  312. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/__init__.py +0 -0
  313. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/create/__init__.py +0 -0
  314. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/create/command.py +0 -0
  315. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/create/presenter.py +0 -0
  316. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/delete/__init__.py +0 -0
  317. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/delete/command.py +0 -0
  318. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/delete/presenter.py +0 -0
  319. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/get/__init__.py +0 -0
  320. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/get/command.py +0 -0
  321. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/get/presenter.py +0 -0
  322. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/get_by_version/command.py +0 -0
  323. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/get_by_version/presenter.py +0 -0
  324. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/list/__init__.py +0 -0
  325. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/list/command.py +0 -0
  326. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/list/presenter.py +0 -0
  327. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/render/__init__.py +0 -0
  328. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/render/command.py +0 -0
  329. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/render/presenter.py +0 -0
  330. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/update/__init__.py +0 -0
  331. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/update/command.py +0 -0
  332. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/update/presenter.py +0 -0
  333. {alloy_runtime_cli-0.2.44/cli/commands/tool_configs → alloy_runtime_cli-0.2.46/cli/commands/templates/validate}/__init__.py +0 -0
  334. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/version/__init__.py +0 -0
  335. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/version/command.py +0 -0
  336. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/templates/version/presenter.py +0 -0
  337. {alloy_runtime_cli-0.2.44/cli/commands/tool_configs/create → alloy_runtime_cli-0.2.46/cli/commands/tool_configs}/__init__.py +0 -0
  338. {alloy_runtime_cli-0.2.44/cli/commands/tool_configs/delete → alloy_runtime_cli-0.2.46/cli/commands/tool_configs/create}/__init__.py +0 -0
  339. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tool_configs/create/command.py +0 -0
  340. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tool_configs/create/presenter.py +0 -0
  341. {alloy_runtime_cli-0.2.44/cli/commands/tool_configs/get → alloy_runtime_cli-0.2.46/cli/commands/tool_configs/delete}/__init__.py +0 -0
  342. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tool_configs/delete/command.py +0 -0
  343. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tool_configs/delete/presenter.py +0 -0
  344. {alloy_runtime_cli-0.2.44/cli/commands/tool_configs/list → alloy_runtime_cli-0.2.46/cli/commands/tool_configs/get}/__init__.py +0 -0
  345. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tool_configs/get/command.py +0 -0
  346. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tool_configs/get/presenter.py +0 -0
  347. {alloy_runtime_cli-0.2.44/cli/commands/tool_configs/update → alloy_runtime_cli-0.2.46/cli/commands/tool_configs/list}/__init__.py +0 -0
  348. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tool_configs/list/command.py +0 -0
  349. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tool_configs/list/presenter.py +0 -0
  350. {alloy_runtime_cli-0.2.44/cli/commands/users → alloy_runtime_cli-0.2.46/cli/commands/tool_configs/update}/__init__.py +0 -0
  351. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tool_configs/update/command.py +0 -0
  352. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tool_configs/update/presenter.py +0 -0
  353. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tools/__init__.py +0 -0
  354. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tools/get/__init__.py +0 -0
  355. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tools/get/command.py +0 -0
  356. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tools/get/presenter.py +0 -0
  357. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tools/list/__init__.py +0 -0
  358. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tools/list/command.py +0 -0
  359. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/tools/list/presenter.py +0 -0
  360. {alloy_runtime_cli-0.2.44/cli/commands/whoami → alloy_runtime_cli-0.2.46/cli/commands/users}/__init__.py +0 -0
  361. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/users/create/command.py +0 -0
  362. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/commands/users/create/presenter.py +0 -0
  363. {alloy_runtime_cli-0.2.44/cli/infrastructure → alloy_runtime_cli-0.2.46/cli/commands/whoami}/__init__.py +0 -0
  364. {alloy_runtime_cli-0.2.44/cli/infrastructure/formatters → alloy_runtime_cli-0.2.46/cli/infrastructure}/__init__.py +0 -0
  365. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/auth_storage.py +0 -0
  366. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/client_factory.py +0 -0
  367. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/command.py +0 -0
  368. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/config.py +0 -0
  369. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/console.py +0 -0
  370. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/editor.py +0 -0
  371. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/error_display.py +0 -0
  372. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/field_extractor.py +0 -0
  373. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/file_content.py +0 -0
  374. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/filter_parser.py +0 -0
  375. {alloy_runtime_cli-0.2.44/cli/infrastructure/formatting → alloy_runtime_cli-0.2.46/cli/infrastructure/formatters}/__init__.py +0 -0
  376. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/formatters/base.py +0 -0
  377. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/formatters/compact_formatter.py +0 -0
  378. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/formatters/json_formatter.py +0 -0
  379. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/formatters/table_formatter.py +0 -0
  380. {alloy_runtime_cli-0.2.44/cli/infrastructure/forms → alloy_runtime_cli-0.2.46/cli/infrastructure/formatting}/__init__.py +0 -0
  381. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/formatting/fields.py +0 -0
  382. {alloy_runtime_cli-0.2.44/cli/infrastructure/injection → alloy_runtime_cli-0.2.46/cli/infrastructure/forms}/__init__.py +0 -0
  383. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/agent_picker.py +0 -0
  384. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/agent_tools_manager.py +0 -0
  385. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/base_picker.py +0 -0
  386. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/components.py +0 -0
  387. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/json_schema_builder.py +0 -0
  388. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/model_picker.py +0 -0
  389. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/parsers.py +0 -0
  390. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/resolution_modal.py +0 -0
  391. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/schema_picker.py +0 -0
  392. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/tag_management_modal.py +0 -0
  393. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/tag_picker.py +0 -0
  394. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/template_picker.py +0 -0
  395. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/tool_config_picker.py +0 -0
  396. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/forms/tool_picker.py +0 -0
  397. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/help_json.py +0 -0
  398. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/help_markdown.py +0 -0
  399. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/help_toon.py +0 -0
  400. {alloy_runtime_cli-0.2.44/cli/infrastructure/renderers → alloy_runtime_cli-0.2.46/cli/infrastructure/injection}/__init__.py +0 -0
  401. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/injection/parser.py +0 -0
  402. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/injection/resolver.py +0 -0
  403. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/kv_parser.py +0 -0
  404. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/local_storage.py +0 -0
  405. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/macro_parser.py +0 -0
  406. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/output.py +0 -0
  407. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/provider_setup.py +0 -0
  408. {alloy_runtime_cli-0.2.44/cli/infrastructure/tui → alloy_runtime_cli-0.2.46/cli/infrastructure/renderers}/__init__.py +0 -0
  409. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/renderers/entity_renderer.py +0 -0
  410. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/renderers/list_renderer.py +0 -0
  411. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/scope_utils.py +0 -0
  412. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/spinner.py +0 -0
  413. {alloy_runtime_cli-0.2.44/cli/infrastructure/validation → alloy_runtime_cli-0.2.46/cli/infrastructure/tui}/__init__.py +0 -0
  414. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/tui/clipboard.py +0 -0
  415. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/tui/formatters.py +0 -0
  416. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/tui/preview.py +0 -0
  417. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/tui/selectable.py +0 -0
  418. {alloy_runtime_cli-0.2.44/cli/tui → alloy_runtime_cli-0.2.46/cli/infrastructure/validation}/__init__.py +0 -0
  419. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/infrastructure/validation/tag_validation.py +0 -0
  420. {alloy_runtime_cli-0.2.44/cli/tui/chat → alloy_runtime_cli-0.2.46/cli/tui}/__init__.py +0 -0
  421. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/app.py +0 -0
  422. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/app_store.py +0 -0
  423. {alloy_runtime_cli-0.2.44/cli/tui/chat/commands → alloy_runtime_cli-0.2.46/cli/tui/chat}/__init__.py +0 -0
  424. {alloy_runtime_cli-0.2.44/cli/tui/chat/renderers → alloy_runtime_cli-0.2.46/cli/tui/chat/commands}/__init__.py +0 -0
  425. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/commands/base.py +0 -0
  426. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/commands/create_session.py +0 -0
  427. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/commands/load_session.py +0 -0
  428. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/commands/regenerate.py +0 -0
  429. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/commands/reload_session.py +0 -0
  430. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/commands/send_message.py +0 -0
  431. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/commands/undo.py +0 -0
  432. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/editor.py +0 -0
  433. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/messages.py +0 -0
  434. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/pane.py +0 -0
  435. {alloy_runtime_cli-0.2.44/cli/tui/chat/services → alloy_runtime_cli-0.2.46/cli/tui/chat/renderers}/__init__.py +0 -0
  436. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/renderers/base.py +0 -0
  437. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/renderers/markdown.py +0 -0
  438. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/renderers/plain.py +0 -0
  439. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/screen.py +0 -0
  440. {alloy_runtime_cli-0.2.44/cli/tui/chat/widgets → alloy_runtime_cli-0.2.46/cli/tui/chat/services}/__init__.py +0 -0
  441. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/services/injection.py +0 -0
  442. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/services/name_generator.py +0 -0
  443. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/slash_commands.py +0 -0
  444. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/store.py +0 -0
  445. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/types.py +0 -0
  446. {alloy_runtime_cli-0.2.44/cli/tui/screens → alloy_runtime_cli-0.2.46/cli/tui/chat/widgets}/__init__.py +0 -0
  447. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/widgets/chat_header.py +0 -0
  448. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/widgets/chat_input.py +0 -0
  449. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/widgets/injection_popup.py +0 -0
  450. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/widgets/message_display.py +0 -0
  451. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/widgets/session_sidebar.py +0 -0
  452. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/chat/widgets/welcome_screen.py +0 -0
  453. {alloy_runtime_cli-0.2.44/cli/tui/styles → alloy_runtime_cli-0.2.46/cli/tui/screens}/__init__.py +0 -0
  454. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/screens/agents.py +0 -0
  455. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/screens/base.py +0 -0
  456. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/screens/content.py +0 -0
  457. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/screens/dashboard.py +0 -0
  458. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/screens/models.py +0 -0
  459. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/screens/nav_screen.py +0 -0
  460. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/screens/schemas.py +0 -0
  461. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/screens/templates.py +0 -0
  462. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/screens/tool_configs.py +0 -0
  463. {alloy_runtime_cli-0.2.44/cli/tui/widgets → alloy_runtime_cli-0.2.46/cli/tui/styles}/__init__.py +0 -0
  464. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/styles/app.tcss +0 -0
  465. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/styles/browser.tcss +0 -0
  466. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/styles/chat.tcss +0 -0
  467. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/styles/dashboard.tcss +0 -0
  468. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/styles/forms.tcss +0 -0
  469. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/styles/modals.tcss +0 -0
  470. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/agent_create_modal.py +0 -0
  471. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/agent_form_modal.py +0 -0
  472. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/agent_update_modal.py +0 -0
  473. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/base_form_modal.py +0 -0
  474. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/confirm_modal.py +0 -0
  475. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/help_modal.py +0 -0
  476. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/new_session_modal.py +0 -0
  477. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/schema_create_modal.py +0 -0
  478. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/schema_update_modal.py +0 -0
  479. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/status_footer.py +0 -0
  480. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/template_create_modal.py +0 -0
  481. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/template_update_modal.py +0 -0
  482. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/tool_config_create_modal.py +0 -0
  483. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/cli/tui/widgets/tool_config_update_modal.py +0 -0
  484. {alloy_runtime_cli-0.2.44 → alloy_runtime_cli-0.2.46}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alloy-runtime-cli
3
- Version: 0.2.44
3
+ Version: 0.2.46
4
4
  Summary: Alloy Runtime CLI - Command-line interface for Alloy Runtime server
5
5
  Keywords: alloy,cli,python,terminal,workflow
6
6
  Classifier: Development Status :: 3 - Alpha
@@ -16,8 +16,8 @@ Requires-Dist: textual==8.1.1
16
16
  Requires-Dist: genson==1.3.0
17
17
  Requires-Dist: pyperclip==1.11.0
18
18
  Requires-Dist: prompt-toolkit==3.0.52
19
- Requires-Dist: alloy-runtime-sdk==0.2.44
20
- Requires-Dist: alloy-runtime-types==0.2.44
19
+ Requires-Dist: alloy-runtime-sdk==0.2.46
20
+ Requires-Dist: alloy-runtime-types==0.2.46
21
21
  Requires-Dist: trogon==0.6.0
22
22
 
23
23
  # alloy-runtime-cli
@@ -69,6 +69,17 @@ Use `alloy --format json` for automation-friendly machine-readable output.
69
69
 
70
70
  The CLI pins `toon-format` from the upstream GitHub source because the PyPI stub release is not usable yet.
71
71
 
72
+ ## Template validation
73
+
74
+ Use `alloy templates validate` when you want to check local Jinja content against the server's template resolution and helper validation rules before saving anything.
75
+
76
+ ```bash
77
+ alloy templates validate --file ./templates/email.jinja2 --var user.name=Alice
78
+ alloy templates validate --content "Hello {{ name }}" --var name=World
79
+ ```
80
+
81
+ Use `templates validate` for local drafts and CI-style checks. Use `templates create` or `templates update` when you want to persist the template after it passes validation.
82
+
72
83
  ## Configuration
73
84
 
74
85
  The CLI reads configuration in this order:
@@ -47,6 +47,17 @@ Use `alloy --format json` for automation-friendly machine-readable output.
47
47
 
48
48
  The CLI pins `toon-format` from the upstream GitHub source because the PyPI stub release is not usable yet.
49
49
 
50
+ ## Template validation
51
+
52
+ Use `alloy templates validate` when you want to check local Jinja content against the server's template resolution and helper validation rules before saving anything.
53
+
54
+ ```bash
55
+ alloy templates validate --file ./templates/email.jinja2 --var user.name=Alice
56
+ alloy templates validate --content "Hello {{ name }}" --var name=World
57
+ ```
58
+
59
+ Use `templates validate` for local drafts and CI-style checks. Use `templates create` or `templates update` when you want to persist the template after it passes validation.
60
+
50
61
  ## Configuration
51
62
 
52
63
  The CLI reads configuration in this order:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alloy-runtime-cli
3
- Version: 0.2.44
3
+ Version: 0.2.46
4
4
  Summary: Alloy Runtime CLI - Command-line interface for Alloy Runtime server
5
5
  Keywords: alloy,cli,python,terminal,workflow
6
6
  Classifier: Development Status :: 3 - Alpha
@@ -16,8 +16,8 @@ Requires-Dist: textual==8.1.1
16
16
  Requires-Dist: genson==1.3.0
17
17
  Requires-Dist: pyperclip==1.11.0
18
18
  Requires-Dist: prompt-toolkit==3.0.52
19
- Requires-Dist: alloy-runtime-sdk==0.2.44
20
- Requires-Dist: alloy-runtime-types==0.2.44
19
+ Requires-Dist: alloy-runtime-sdk==0.2.46
20
+ Requires-Dist: alloy-runtime-types==0.2.46
21
21
  Requires-Dist: trogon==0.6.0
22
22
 
23
23
  # alloy-runtime-cli
@@ -69,6 +69,17 @@ Use `alloy --format json` for automation-friendly machine-readable output.
69
69
 
70
70
  The CLI pins `toon-format` from the upstream GitHub source because the PyPI stub release is not usable yet.
71
71
 
72
+ ## Template validation
73
+
74
+ Use `alloy templates validate` when you want to check local Jinja content against the server's template resolution and helper validation rules before saving anything.
75
+
76
+ ```bash
77
+ alloy templates validate --file ./templates/email.jinja2 --var user.name=Alice
78
+ alloy templates validate --content "Hello {{ name }}" --var name=World
79
+ ```
80
+
81
+ Use `templates validate` for local drafts and CI-style checks. Use `templates create` or `templates update` when you want to persist the template after it passes validation.
82
+
72
83
  ## Configuration
73
84
 
74
85
  The CLI reads configuration in this order:
@@ -23,6 +23,7 @@ cli/commands/admin/credentials/grant/command.py
23
23
  cli/commands/admin/credentials/grant/fields.py
24
24
  cli/commands/admin/credentials/grant/presenter.py
25
25
  cli/commands/agents/__init__.py
26
+ cli/commands/agents/tool_formatting.py
26
27
  cli/commands/agents/create/__init__.py
27
28
  cli/commands/agents/create/command.py
28
29
  cli/commands/agents/create/fields.py
@@ -324,6 +325,9 @@ cli/commands/templates/render/presenter.py
324
325
  cli/commands/templates/update/__init__.py
325
326
  cli/commands/templates/update/command.py
326
327
  cli/commands/templates/update/presenter.py
328
+ cli/commands/templates/validate/__init__.py
329
+ cli/commands/templates/validate/command.py
330
+ cli/commands/templates/validate/presenter.py
327
331
  cli/commands/templates/version/__init__.py
328
332
  cli/commands/templates/version/command.py
329
333
  cli/commands/templates/version/presenter.py
@@ -4,6 +4,6 @@ textual==8.1.1
4
4
  genson==1.3.0
5
5
  pyperclip==1.11.0
6
6
  prompt-toolkit==3.0.52
7
- alloy-runtime-sdk==0.2.44
8
- alloy-runtime-types==0.2.44
7
+ alloy-runtime-sdk==0.2.46
8
+ alloy-runtime-types==0.2.46
9
9
  trogon==0.6.0
@@ -2,6 +2,7 @@
2
2
 
3
3
  from alloy_runtime_types.dtos.agents import GetAgentResponse
4
4
 
5
+ from cli.commands.agents.tool_formatting import format_tool_details
5
6
  from cli.infrastructure.output import OutputService
6
7
  from cli.infrastructure.renderers.entity_renderer import FieldConfig
7
8
 
@@ -23,7 +24,7 @@ def present_agent_details(response: GetAgentResponse) -> None:
23
24
  FieldConfig("name", "Name"),
24
25
  FieldConfig("description", "Description"),
25
26
  FieldConfig("models", "Models", _format_configured_count),
26
- FieldConfig("tools", "Tools", _format_configured_count),
27
+ FieldConfig("tools", "Tools", lambda _: format_tool_details(response.tools)),
27
28
  FieldConfig("id", "Tags", lambda _: _format_tags(response)),
28
29
  ]
29
30
 
@@ -0,0 +1,25 @@
1
+ import json
2
+
3
+ from alloy_runtime_types.dtos.agents import AgentToolResponse
4
+
5
+
6
+ def _format_json(value: object) -> str:
7
+ return json.dumps(value, sort_keys=True, separators=(",", ":"))
8
+
9
+
10
+ def format_tool_details(tools: list[AgentToolResponse]) -> str:
11
+ if not tools:
12
+ return "(none)"
13
+ parts: list[str] = []
14
+ for tool in tools:
15
+ lines = [
16
+ f"{tool.tool_alias} ({tool.tool_id}, {tool.config_source}, {tool.update_mode})",
17
+ f"submitted={_format_json(tool.submitted_config)}",
18
+ f"effective={_format_json(tool.effective_config)}",
19
+ ]
20
+ if tool.defaults_applied:
21
+ lines.append(f"defaults={', '.join(tool.defaults_applied)}")
22
+ if tool.tool_config_name:
23
+ lines.append(f"tool_config_name={tool.tool_config_name}")
24
+ parts.append(" ".join(lines))
25
+ return "\n\n".join(parts)
@@ -2,6 +2,8 @@
2
2
 
3
3
  from alloy_runtime_types.dtos.agents import UpdateAgentResponse
4
4
 
5
+ from cli.commands.agents.tool_formatting import format_tool_details
6
+
5
7
 
6
8
  def format_models(response: UpdateAgentResponse) -> str:
7
9
  """Format models list for display."""
@@ -12,9 +14,7 @@ def format_models(response: UpdateAgentResponse) -> str:
12
14
 
13
15
  def format_tools(response: UpdateAgentResponse) -> str:
14
16
  """Format tools list for display."""
15
- if not response.tools:
16
- return "(none)"
17
- return ", ".join(t.tool_id for t in response.tools)
17
+ return format_tool_details(response.tools)
18
18
 
19
19
 
20
20
  def format_tags(response: UpdateAgentResponse) -> str:
@@ -46,7 +46,16 @@ def present_generation_status(response: AsyncGenerationStatusResponse) -> None:
46
46
  format_duration_ms(value) if value is not None else cast(str, None)
47
47
  ),
48
48
  ),
49
+ FieldConfig(
50
+ "assistant_message_id", "Assistant Message ID", format_optional
51
+ ),
52
+ FieldConfig(
53
+ "primary_content_part_id",
54
+ "Primary Content Part ID",
55
+ format_optional,
56
+ ),
49
57
  FieldConfig("output_text", "Output"),
58
+ FieldConfig("output_incomplete", "Output Incomplete"),
50
59
  FieldConfig(
51
60
  "usage",
52
61
  "Input Tokens",
@@ -61,6 +70,15 @@ def present_generation_status(response: AsyncGenerationStatusResponse) -> None:
61
70
  format_tokens(usage.output_tokens) if usage else cast(str, None)
62
71
  ),
63
72
  ),
73
+ FieldConfig(
74
+ "usage",
75
+ "Reasoning Tokens",
76
+ lambda usage: (
77
+ format_tokens(usage.reasoning_tokens)
78
+ if usage and usage.reasoning_tokens is not None
79
+ else cast(str, None)
80
+ ),
81
+ ),
64
82
  FieldConfig(
65
83
  "cost",
66
84
  "Cost",
@@ -25,6 +25,7 @@ from cli.commands.shared_flags import (
25
25
  SCHEMA_DEF,
26
26
  SCHEMA_FORMAT,
27
27
  SCHEMA_REF,
28
+ SHOW_FULL_TRACE,
28
29
  SHOW_THINKING,
29
30
  STREAM,
30
31
  TAGS,
@@ -198,6 +199,7 @@ def generate_text_command(
198
199
  # Display Options
199
200
  stream: bool = STREAM,
200
201
  show_thinking: bool = SHOW_THINKING,
202
+ show_full_trace: bool = SHOW_FULL_TRACE,
201
203
  # Concurrent Execution
202
204
  count: int = typer.Option(
203
205
  1,
@@ -508,6 +510,7 @@ def generate_text_command(
508
510
  tags=tags,
509
511
  stream=stream,
510
512
  show_thinking=show_thinking,
513
+ show_full_trace=show_full_trace,
511
514
  count=count,
512
515
  output_mode=output,
513
516
  output_file=output_file,
@@ -848,6 +851,7 @@ async def _execute_generate_text(
848
851
  tools: list[Any] | None = None,
849
852
  parent_execution_id: UUID | None = None,
850
853
  execution_purpose: str | None = None,
854
+ show_full_trace: bool = False,
851
855
  ) -> None:
852
856
  """Execute the generate text command.
853
857
 
@@ -957,6 +961,7 @@ async def _execute_generate_text(
957
961
  tag_list=tag_list,
958
962
  stream=stream,
959
963
  show_thinking=show_thinking,
964
+ show_full_trace=show_full_trace,
960
965
  console=console,
961
966
  _output=output,
962
967
  output_mode=output_mode,
@@ -990,6 +995,7 @@ async def _execute_generate_text(
990
995
  tags=tag_list,
991
996
  stream=stream,
992
997
  output_schema=output_schema,
998
+ show_full_trace=show_full_trace,
993
999
  external_id=external_id,
994
1000
  billing_project_id=billing_project_id,
995
1001
  max_history_messages=max_history_messages,
@@ -1023,6 +1029,7 @@ async def _execute_generate_text(
1023
1029
  chat_session_id=session_id,
1024
1030
  tags=tag_list,
1025
1031
  stream=stream,
1032
+ show_full_trace=show_full_trace,
1026
1033
  output_schema=output_schema,
1027
1034
  billing_project_id=billing_project_id,
1028
1035
  parent_execution_id=parent_execution_id,
@@ -1246,6 +1253,7 @@ async def _execute_multi_agent(
1246
1253
  _output: OutputService,
1247
1254
  output_mode: str = "console",
1248
1255
  output_file: str | None = None,
1256
+ show_full_trace: bool = False,
1249
1257
  ) -> None:
1250
1258
  async with authenticated_client() as (_config, client):
1251
1259
  requests = [
@@ -1259,6 +1267,7 @@ async def _execute_multi_agent(
1259
1267
  system_instruction_variables=system_variables,
1260
1268
  tags=tag_list,
1261
1269
  stream=stream,
1270
+ show_full_trace=show_full_trace,
1262
1271
  )
1263
1272
  for agent_id in agents
1264
1273
  ]
@@ -4,7 +4,11 @@ from pydantic import BaseModel
4
4
 
5
5
  from cli.infrastructure.output import OutputFormat, OutputService
6
6
  from cli.infrastructure.renderers.entity_renderer import FieldConfig
7
- from alloy_runtime_types.dtos.generation import GenerateTextResponse
7
+ from cli.infrastructure.renderers.list_renderer import ColumnConfig
8
+ from alloy_runtime_types.dtos.generation import (
9
+ GenerateTextResponse,
10
+ GenerationFullTrace,
11
+ )
8
12
 
9
13
 
10
14
  class GeneratedTextOutput(BaseModel):
@@ -27,6 +31,20 @@ def _format_total_tokens(response: GenerateTextResponse) -> str:
27
31
  return str(response.usage.input_tokens + response.usage.output_tokens)
28
32
 
29
33
 
34
+ def _format_reasoning_tokens(usage: Any) -> Any:
35
+ reasoning_tokens = getattr(usage, "reasoning_tokens", None)
36
+ if reasoning_tokens is None:
37
+ return cast(str, None)
38
+ return str(reasoning_tokens)
39
+
40
+
41
+ def _format_content_parts(parts: list[Any]) -> str:
42
+ if not parts:
43
+ return "-"
44
+ first_part: Any = parts[0]
45
+ return getattr(first_part, "content_text", None) or "-"
46
+
47
+
30
48
  class GenerateTextPresenter:
31
49
  def __init__(self, output: OutputService):
32
50
  self.output = output
@@ -50,10 +68,14 @@ class GenerateTextPresenter:
50
68
  [
51
69
  FieldConfig("execution_id", "Execution ID", str),
52
70
  FieldConfig("chat_session_id", "Session ID", str),
53
- FieldConfig("content_part_id", "Content Part ID", str),
71
+ FieldConfig("assistant_message_id", "Assistant Message ID", str),
72
+ FieldConfig(
73
+ "primary_content_part_id", "Primary Content Part ID", str
74
+ ),
54
75
  FieldConfig("provider_key", "Provider"),
55
76
  FieldConfig("provider_model_name", "Model"),
56
77
  FieldConfig("finish_reason", "Finish Reason"),
78
+ FieldConfig("output_incomplete", "Output Incomplete"),
57
79
  FieldConfig(
58
80
  "usage", "Input Tokens", lambda usage: str(usage.input_tokens)
59
81
  ),
@@ -65,6 +87,7 @@ class GenerateTextPresenter:
65
87
  "Total Tokens",
66
88
  lambda _: _format_total_tokens(response),
67
89
  ),
90
+ FieldConfig("usage", "Reasoning Tokens", _format_reasoning_tokens),
68
91
  FieldConfig(
69
92
  "cost", "Input Cost", lambda cost: f"${cost.input_cost_usd:.6f}"
70
93
  ),
@@ -92,6 +115,8 @@ class GenerateTextPresenter:
92
115
  )
93
116
 
94
117
  self.present_text_output(response.output_text, title=output_title)
118
+ if response.full_trace is not None:
119
+ self.present_full_trace(response.full_trace)
95
120
 
96
121
  def present_multiple_results(
97
122
  self, responses: list[GenerateTextResponse], show_metadata: bool = True
@@ -120,3 +145,42 @@ class GenerateTextPresenter:
120
145
  [FieldConfig("output_text", "Output")],
121
146
  raw_payload=output,
122
147
  )
148
+
149
+ def present_full_trace(self, trace: GenerationFullTrace) -> None:
150
+ self.output.table(
151
+ items=cast(list[BaseModel], trace.messages),
152
+ title=f"Full Trace ({trace.finish_reason})",
153
+ columns=[
154
+ ColumnConfig(
155
+ source_field="sequence_number",
156
+ header_label="#",
157
+ align="right",
158
+ compact_line=1,
159
+ compact_style="cyan",
160
+ ),
161
+ ColumnConfig(
162
+ source_field="role",
163
+ header_label="Role",
164
+ compact_line=1,
165
+ compact_style="yellow",
166
+ ),
167
+ ColumnConfig(
168
+ source_field="created_at",
169
+ header_label="Time",
170
+ formatter=lambda value: (
171
+ value.strftime("%H:%M:%S") if value else "-"
172
+ ),
173
+ compact_line=1,
174
+ compact_style="blue",
175
+ ),
176
+ ColumnConfig(
177
+ source_field="content_parts",
178
+ header_label="Content",
179
+ formatter=_format_content_parts,
180
+ compact_line=2,
181
+ compact_style="dim",
182
+ ),
183
+ ],
184
+ raw_payload=trace,
185
+ total_count=len(trace.messages),
186
+ )
@@ -469,6 +469,12 @@ SHOW_THINKING = typer.Option(
469
469
  help="Show thinking blocks",
470
470
  )
471
471
 
472
+ SHOW_FULL_TRACE = typer.Option(
473
+ False,
474
+ "--show-full-trace/--no-show-full-trace",
475
+ help="Include the full ordered trace for the generated turn",
476
+ )
477
+
472
478
 
473
479
  # =============================================================================
474
480
  # CREDENTIAL FLAGS
@@ -0,0 +1,82 @@
1
+ from pathlib import Path
2
+ from typing import Annotated, Any, Optional
3
+
4
+ import typer
5
+
6
+ from cli.commands.flag_utils import require_exclusive, require_one_of
7
+ from cli.commands.templates.validate.presenter import present_validate_result
8
+ from cli.infrastructure.command import async_command, authenticated_client
9
+ from cli.infrastructure.file_content import FileContentError, resolve_content
10
+ from cli.infrastructure.kv_parser import parse_kv_pairs
11
+ from alloy_runtime_types.dtos.templates import ValidateTemplateRequest
12
+
13
+
14
+ def templates_validate_command(
15
+ content_file: Optional[Path] = typer.Option(
16
+ None,
17
+ "-f",
18
+ "--file",
19
+ help="Read template content from file",
20
+ exists=True,
21
+ readable=True,
22
+ ),
23
+ content: Optional[str] = typer.Option(
24
+ None,
25
+ "-c",
26
+ "--content",
27
+ help="Inline template content (or @file)",
28
+ ),
29
+ variables: Annotated[
30
+ Optional[list[str]],
31
+ typer.Option(
32
+ "-v",
33
+ "--var",
34
+ help="Variable (key=value, key:=json, or key={...}/[...] for nested JSON). Repeatable.",
35
+ ),
36
+ ] = None,
37
+ ) -> None:
38
+ """Validate template content without saving it."""
39
+ require_exclusive(("--file", content_file), ("--content", content))
40
+ require_one_of(("--file", content_file), ("--content", content))
41
+
42
+ variables_dict = parse_kv_pairs(variables, parse_object_array_strings=True)
43
+
44
+ _execute_validate_from_flags(
45
+ content_file=content_file,
46
+ content=content,
47
+ variables_dict=variables_dict,
48
+ )
49
+
50
+
51
+ def _execute_validate_from_flags(
52
+ *,
53
+ content_file: Path | None,
54
+ content: str | None,
55
+ variables_dict: dict[str, Any] | None,
56
+ ) -> None:
57
+ try:
58
+ resolved_content = resolve_content(content)
59
+ except FileContentError as e:
60
+ raise typer.BadParameter(str(e))
61
+
62
+ if content_file is not None:
63
+ template_content = content_file.read_text()
64
+ else:
65
+ template_content = resolved_content or ""
66
+
67
+ if not template_content.strip():
68
+ raise typer.BadParameter("Template content cannot be empty")
69
+
70
+ request = ValidateTemplateRequest(
71
+ content=template_content,
72
+ variables=variables_dict or {},
73
+ )
74
+ _execute_validate(request)
75
+
76
+
77
+ @async_command
78
+ async def _execute_validate(request: ValidateTemplateRequest) -> None:
79
+ async with authenticated_client() as (_config, client):
80
+ response = await client.validate_template(request)
81
+
82
+ present_validate_result(response)
@@ -0,0 +1,126 @@
1
+ from typing import cast
2
+
3
+ from pydantic import BaseModel
4
+
5
+ from cli.infrastructure.output import OutputFormat, OutputService
6
+ from cli.infrastructure.renderers.entity_renderer import FieldConfig
7
+ from cli.infrastructure.renderers.list_renderer import ColumnConfig
8
+ from alloy_runtime_types.dtos.templates import (
9
+ TemplateValidationDependencyTraceEntry,
10
+ ValidateTemplateResponse,
11
+ )
12
+
13
+
14
+ class _TemplateValidationSummary(BaseModel):
15
+ validation_status: str
16
+ renderable: bool
17
+ createable: bool
18
+ required_variables: str
19
+ unresolved_dependencies: str
20
+ circular_dependencies: str
21
+ issue_count: int
22
+ resolved_dependency_count: int
23
+
24
+
25
+ def present_validate_result(response: ValidateTemplateResponse) -> None:
26
+ output = OutputService.get()
27
+
28
+ if getattr(output, "format", OutputFormat.COMPACT) == OutputFormat.JSON:
29
+ output.raw(response)
30
+ return
31
+
32
+ summary = _TemplateValidationSummary(
33
+ validation_status=("renderable" if response.is_renderable else "issues found"),
34
+ renderable=response.is_renderable,
35
+ createable=response.is_createable,
36
+ required_variables=_format_string_list(response.required_variables),
37
+ unresolved_dependencies=_format_string_list(response.unresolved_dependencies),
38
+ circular_dependencies=_format_cycles(response.circular_dependencies),
39
+ issue_count=len(response.issues),
40
+ resolved_dependency_count=len(response.resolved_dependencies),
41
+ )
42
+ output.entity(
43
+ summary,
44
+ "Template Validation",
45
+ [
46
+ FieldConfig("validation_status", "Template Validation"),
47
+ FieldConfig("renderable", "Renderable"),
48
+ FieldConfig("createable", "Createable"),
49
+ FieldConfig("required_variables", "Required Variables"),
50
+ FieldConfig("unresolved_dependencies", "Unresolved Dependencies"),
51
+ FieldConfig("circular_dependencies", "Circular Dependencies"),
52
+ FieldConfig("issue_count", "Validation Issues"),
53
+ FieldConfig("resolved_dependency_count", "Resolved Dependencies"),
54
+ ],
55
+ raw_payload=response,
56
+ )
57
+
58
+ if response.resolved_dependencies:
59
+ output.table(
60
+ items=cast(list[BaseModel], response.resolved_dependencies),
61
+ title="Resolved Dependencies",
62
+ columns=[
63
+ ColumnConfig("template_name", "Template"),
64
+ ColumnConfig("depth", "Depth"),
65
+ ColumnConfig("was_pinned", "Pinned"),
66
+ ColumnConfig("template_version_id", "Version ID", str),
67
+ ],
68
+ )
69
+
70
+ if response.issues:
71
+ output.table(
72
+ items=cast(list[BaseModel], response.issues),
73
+ title="Validation Issues",
74
+ columns=[
75
+ ColumnConfig("code", "Code"),
76
+ ColumnConfig("identifier", "Identifier", _format_optional_value),
77
+ ColumnConfig("message", "Message"),
78
+ ColumnConfig(
79
+ "dependency_trace",
80
+ "Dependency Trace",
81
+ _format_issue_trace,
82
+ ),
83
+ ],
84
+ )
85
+ elif response.dependency_trace:
86
+ output.table(
87
+ items=cast(list[BaseModel], response.dependency_trace),
88
+ title="Dependency Trace",
89
+ columns=[
90
+ ColumnConfig("template_name", "Template", _format_optional_value),
91
+ ColumnConfig("depth", "Depth"),
92
+ ColumnConfig("source_kind", "Source"),
93
+ ColumnConfig(
94
+ "template_version_id", "Version ID", _format_optional_value
95
+ ),
96
+ ],
97
+ )
98
+
99
+
100
+ def _format_string_list(values: list[str]) -> str:
101
+ if not values:
102
+ return "(none)"
103
+ return ", ".join(values)
104
+
105
+
106
+ def _format_cycles(cycles: list[list[str]]) -> str:
107
+ if not cycles:
108
+ return "(none)"
109
+ return " | ".join(" -> ".join(cycle) for cycle in cycles)
110
+
111
+
112
+ def _format_optional_value(value: object) -> str:
113
+ if value is None or value == "":
114
+ return "(none)"
115
+ return str(value)
116
+
117
+
118
+ def _format_issue_trace(trace: list[TemplateValidationDependencyTraceEntry]) -> str:
119
+ if not trace:
120
+ return "(none)"
121
+ return " -> ".join(_format_trace_entry(item) for item in trace)
122
+
123
+
124
+ def _format_trace_entry(item: TemplateValidationDependencyTraceEntry) -> str:
125
+ name = item.template_name or "(unknown)"
126
+ return f"{name} [{item.source_kind}]"