better-notion 1.2.0__tar.gz → 1.4.0__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 (193) hide show
  1. {better_notion-1.2.0 → better_notion-1.4.0}/PKG-INFO +1 -1
  2. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents.py +239 -53
  3. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents_cli.py +60 -133
  4. {better_notion-1.2.0 → better_notion-1.4.0}/pyproject.toml +1 -1
  5. {better_notion-1.2.0 → better_notion-1.4.0}/.gitignore +0 -0
  6. {better_notion-1.2.0 → better_notion-1.4.0}/LICENSE +0 -0
  7. {better_notion-1.2.0 → better_notion-1.4.0}/README.md +0 -0
  8. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/__init__.py +0 -0
  9. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/__init__.py +0 -0
  10. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/client.py +0 -0
  11. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/__init__.py +0 -0
  12. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/blocks.py +0 -0
  13. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/comments.py +0 -0
  14. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/databases.py +0 -0
  15. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/pages.py +0 -0
  16. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/users.py +0 -0
  17. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/__init__.py +0 -0
  18. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/block.py +0 -0
  19. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/comment.py +0 -0
  20. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/database.py +0 -0
  21. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/page.py +0 -0
  22. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/user.py +0 -0
  23. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/errors.py +0 -0
  24. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/oauth.py +0 -0
  25. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/__init__.py +0 -0
  26. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/base.py +0 -0
  27. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/checkbox.py +0 -0
  28. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/date.py +0 -0
  29. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/email.py +0 -0
  30. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/number.py +0 -0
  31. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/phone.py +0 -0
  32. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/rich_text.py +0 -0
  33. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/select.py +0 -0
  34. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/title.py +0 -0
  35. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/url.py +0 -0
  36. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/utils/__init__.py +0 -0
  37. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/utils/pagination.py +0 -0
  38. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/__init__.py +0 -0
  39. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/async_typer.py +0 -0
  40. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/__init__.py +0 -0
  41. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/auth.py +0 -0
  42. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/blocks.py +0 -0
  43. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/comments.py +0 -0
  44. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/config.py +0 -0
  45. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/databases.py +0 -0
  46. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/pages.py +0 -0
  47. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/plugins.py +0 -0
  48. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/search.py +0 -0
  49. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/update.py +0 -0
  50. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/users.py +0 -0
  51. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/workspace.py +0 -0
  52. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/config.py +0 -0
  53. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/display.py +0 -0
  54. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/errors.py +0 -0
  55. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/main.py +0 -0
  56. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/markdown.py +0 -0
  57. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/response.py +0 -0
  58. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/utils/__init__.py +0 -0
  59. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/__init__.py +0 -0
  60. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/base/__init__.py +0 -0
  61. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/base/entity.py +0 -0
  62. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/cache/__init__.py +0 -0
  63. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/cache/cache.py +0 -0
  64. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/client.py +0 -0
  65. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/__init__.py +0 -0
  66. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/block_manager.py +0 -0
  67. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/comment_manager.py +0 -0
  68. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/database_manager.py +0 -0
  69. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/page_manager.py +0 -0
  70. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/user_manager.py +0 -0
  71. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/__init__.py +0 -0
  72. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/block.py +0 -0
  73. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/__init__.py +0 -0
  74. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/audio.py +0 -0
  75. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/bookmark.py +0 -0
  76. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/breadcrumb.py +0 -0
  77. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/bullet.py +0 -0
  78. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/callout.py +0 -0
  79. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/code.py +0 -0
  80. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/column.py +0 -0
  81. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/column_list.py +0 -0
  82. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/divider.py +0 -0
  83. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/embed.py +0 -0
  84. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/equation.py +0 -0
  85. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/file.py +0 -0
  86. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/heading.py +0 -0
  87. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/image.py +0 -0
  88. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/numbered.py +0 -0
  89. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/paragraph.py +0 -0
  90. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/pdf.py +0 -0
  91. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/quote.py +0 -0
  92. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/synced_block.py +0 -0
  93. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/table.py +0 -0
  94. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/table_row.py +0 -0
  95. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/template.py +0 -0
  96. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/todo.py +0 -0
  97. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/toggle.py +0 -0
  98. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/video.py +0 -0
  99. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/comment.py +0 -0
  100. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/database.py +0 -0
  101. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/page.py +0 -0
  102. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/user.py +0 -0
  103. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/parents/__init__.py +0 -0
  104. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/plugins.py +0 -0
  105. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/properties/__init__.py +0 -0
  106. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/properties/formula.py +0 -0
  107. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/properties/parsers.py +0 -0
  108. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/properties/relation.py +0 -0
  109. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/query/__init__.py +0 -0
  110. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/query/database_query.py +0 -0
  111. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/query/filter_translator.py +0 -0
  112. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/__init__.py +0 -0
  113. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/base.py +0 -0
  114. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/loader.py +0 -0
  115. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/__init__.py +0 -0
  116. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents_sdk/__init__.py +0 -0
  117. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents_sdk/managers.py +0 -0
  118. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents_sdk/models.py +0 -0
  119. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents_sdk/plugin.py +0 -0
  120. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/productivity.py +0 -0
  121. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/state.py +0 -0
  122. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/__init__.py +0 -0
  123. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/__init__.py +0 -0
  124. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/auth.py +0 -0
  125. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/dependency_resolver.py +0 -0
  126. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/project_context.py +0 -0
  127. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/rbac.py +0 -0
  128. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/schemas.py +0 -0
  129. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/state_machine.py +0 -0
  130. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/workspace.py +0 -0
  131. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/helpers.py +0 -0
  132. {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/retry.py +0 -0
  133. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/base/test_entity.py +0 -0
  134. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/cache/test_cache.py +0 -0
  135. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/__init__.py +0 -0
  136. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/blocks/test_advanced_blocks.py +0 -0
  137. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/test_block.py +0 -0
  138. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/test_database.py +0 -0
  139. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/test_database_bug.py +0 -0
  140. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/test_page.py +0 -0
  141. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/test_user.py +0 -0
  142. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/properties/test_formula.py +0 -0
  143. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/properties/test_parsers.py +0 -0
  144. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/properties/test_relation.py +0 -0
  145. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/query/test_database_query.py +0 -0
  146. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/query/test_filter_translator.py +0 -0
  147. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/test_client.py +0 -0
  148. {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/test_comment.py +0 -0
  149. {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/__init__.py +0 -0
  150. {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_auth.py +0 -0
  151. {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_dependency_resolver.py +0 -0
  152. {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_plugin.py +0 -0
  153. {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_project_context.py +0 -0
  154. {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_rbac.py +0 -0
  155. {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_schemas.py +0 -0
  156. {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_state_machine.py +0 -0
  157. {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_workspace.py +0 -0
  158. {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/__init__.py +0 -0
  159. {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_async_typer.py +0 -0
  160. {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_config.py +0 -0
  161. {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_display.py +0 -0
  162. {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_errors.py +0 -0
  163. {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_main.py +0 -0
  164. {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_pages_commands.py +0 -0
  165. {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_response.py +0 -0
  166. {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_update.py +0 -0
  167. {better_notion-1.2.0 → better_notion-1.4.0}/tests/conftest.py +0 -0
  168. {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/conftest.py +0 -0
  169. {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/test_blocks.py +0 -0
  170. {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/test_databases.py +0 -0
  171. {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/test_pages.py +0 -0
  172. {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/test_search.py +0 -0
  173. {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/test_users.py +0 -0
  174. {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/__init__.py +0 -0
  175. {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_agents_cli.py +0 -0
  176. {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_agents_sdk_integration.py +0 -0
  177. {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_agents_sdk_managers.py +0 -0
  178. {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_agents_sdk_models.py +0 -0
  179. {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_base.py +0 -0
  180. {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_loader.py +0 -0
  181. {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_marketplace.py +0 -0
  182. {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_plugin_commands_state.py +0 -0
  183. {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_productivity_plugin.py +0 -0
  184. {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_state.py +0 -0
  185. {better_notion-1.2.0 → better_notion-1.4.0}/tests/sdk/__init__.py +0 -0
  186. {better_notion-1.2.0 → better_notion-1.4.0}/tests/sdk/test_plugin_system.py +0 -0
  187. {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_client.py +0 -0
  188. {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_collections.py +0 -0
  189. {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_entities.py +0 -0
  190. {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_errors.py +0 -0
  191. {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_helpers.py +0 -0
  192. {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_properties.py +0 -0
  193. {better_notion-1.2.0 → better_notion-1.4.0}/tests/utils/test_retry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: better-notion
3
- Version: 1.2.0
3
+ Version: 1.4.0
4
4
  Summary: A high-level Python SDK for the Notion API with developer experience in mind.
5
5
  Project-URL: Homepage, https://github.com/nesalia-inc/better-notion
6
6
  Project-URL: Documentation, https://github.com/nesalia-inc/better-notion#readme
@@ -343,73 +343,259 @@ class AgentsPlugin(CombinedPluginInterface):
343
343
  except Exception as e:
344
344
  return format_error("ROLE_LIST_ERROR", str(e), retry=False)
345
345
 
346
- # Register agents app to main CLI
346
+ # Register the agents app to main CLI FIRST
347
347
  app.add_typer(agents_app)
348
348
 
349
- # Import and register CRUD commands
349
+ # Import CLI functions for CRUD commands
350
350
  from better_notion.plugins.official import agents_cli
351
351
 
352
- # Organizations commands
352
+ # Organizations commands (under agents)
353
353
  orgs_app = typer.Typer(name="orgs", help="Organizations management commands")
354
- orgs_app.command("list")(agents_cli.orgs_list)
355
- orgs_app.command("get")(agents_cli.orgs_get)
356
- orgs_app.command("create")(agents_cli.orgs_create)
357
- app.add_typer(orgs_app)
358
354
 
359
- # Projects commands
355
+ @orgs_app.command("list")
356
+ def orgs_list_cmd():
357
+ typer.echo(agents_cli.orgs_list())
358
+
359
+ @orgs_app.command("get")
360
+ def orgs_get_cmd(org_id: str):
361
+ typer.echo(agents_cli.orgs_get(org_id))
362
+
363
+ @orgs_app.command("create")
364
+ def orgs_create_cmd(
365
+ name: str = typer.Option(..., "--name", "-n"),
366
+ slug: str = typer.Option(..., "--slug"),
367
+ description: str = typer.Option("", "--description", "-d"),
368
+ repository_url: str = typer.Option("", "--repository-url"),
369
+ status: str = typer.Option("Active", "--status"),
370
+ ):
371
+ typer.echo(agents_cli.orgs_create(name, slug, description, repository_url, status))
372
+
373
+ agents_app.add_typer(orgs_app)
374
+
375
+ # Projects commands (under agents)
360
376
  projects_app = typer.Typer(name="projects", help="Projects management commands")
361
- projects_app.command("list")(projects_list_with_cli := lambda **kwargs: agents_cli.projects_list(**kwargs))
362
- projects_app.command("get")(projects_get_with_cli := lambda project_id: agents_cli.projects_get(project_id))
363
- projects_app.command("create")(lambda **kwargs: agents_cli.projects_create(**kwargs))
364
- app.add_typer(projects_app)
365
377
 
366
- # Versions commands
378
+ @projects_app.command("list")
379
+ def projects_list_cmd(org_id: str = typer.Option(None, "--org-id", "-o")):
380
+ typer.echo(agents_cli.projects_list(org_id))
381
+
382
+ @projects_app.command("get")
383
+ def projects_get_cmd(project_id: str):
384
+ typer.echo(agents_cli.projects_get(project_id))
385
+
386
+ @projects_app.command("create")
387
+ def projects_create_cmd(
388
+ name: str = typer.Option(..., "--name", "-n"),
389
+ org_id: str = typer.Option(..., "--org-id", "-o"),
390
+ slug: str = typer.Option("", "--slug"),
391
+ description: str = typer.Option("", "--description", "-d"),
392
+ repository: str = typer.Option("", "--repository"),
393
+ status: str = typer.Option("Active", "--status"),
394
+ tech_stack: str = typer.Option("", "--tech-stack"),
395
+ ):
396
+ typer.echo(agents_cli.projects_create(name, org_id, slug, description, repository, status, tech_stack))
397
+
398
+ agents_app.add_typer(projects_app)
399
+
400
+ # Versions commands (under agents)
367
401
  versions_app = typer.Typer(name="versions", help="Versions management commands")
368
- versions_app.command("list")(lambda **kwargs: agents_cli.versions_list(**kwargs))
369
- versions_app.command("get")(lambda version_id: agents_cli.versions_get(version_id))
370
- versions_app.command("create")(lambda **kwargs: agents_cli.versions_create(**kwargs))
371
- app.add_typer(versions_app)
372
402
 
373
- # Tasks commands
403
+ @versions_app.command("list")
404
+ def versions_list_cmd(project_id: str = typer.Option(None, "--project-id", "-p")):
405
+ typer.echo(agents_cli.versions_list(project_id))
406
+
407
+ @versions_app.command("get")
408
+ def versions_get_cmd(version_id: str):
409
+ typer.echo(agents_cli.versions_get(version_id))
410
+
411
+ @versions_app.command("create")
412
+ def versions_create_cmd(
413
+ name: str = typer.Option(..., "--name", "-n"),
414
+ project_id: str = typer.Option(..., "--project-id", "-p"),
415
+ status: str = typer.Option("Planning", "--status"),
416
+ type_: str = typer.Option("Minor", "--type", "-t"),
417
+ branch_name: str = typer.Option("", "--branch-name"),
418
+ ):
419
+ typer.echo(agents_cli.versions_create(name, project_id, status, type_, branch_name))
420
+
421
+ agents_app.add_typer(versions_app)
422
+
423
+ # Tasks commands (under agents)
374
424
  tasks_app = typer.Typer(name="tasks", help="Tasks management commands")
375
- tasks_app.command("list")(lambda **kwargs: agents_cli.tasks_list(**kwargs))
376
- tasks_app.command("get")(lambda task_id: agents_cli.tasks_get(task_id))
377
- tasks_app.command("create")(lambda **kwargs: agents_cli.tasks_create(**kwargs))
378
- tasks_app.command("next")(lambda **kwargs: agents_cli.tasks_next(**kwargs))
379
- tasks_app.command("claim")(lambda task_id: agents_cli.tasks_claim(task_id))
380
- tasks_app.command("start")(lambda task_id: agents_cli.tasks_start(task_id))
381
- tasks_app.command("complete")(lambda **kwargs: agents_cli.tasks_complete(**kwargs))
382
- tasks_app.command("can-start")(lambda task_id: agents_cli.tasks_can_start(task_id))
383
- app.add_typer(tasks_app)
384
-
385
- # Ideas commands
425
+
426
+ @tasks_app.command("list")
427
+ def tasks_list_cmd(
428
+ version_id: str = typer.Option(None, "--version-id", "-v"),
429
+ status: str = typer.Option(None, "--status", "-s"),
430
+ ):
431
+ typer.echo(agents_cli.tasks_list(version_id, status))
432
+
433
+ @tasks_app.command("get")
434
+ def tasks_get_cmd(task_id: str):
435
+ typer.echo(agents_cli.tasks_get(task_id))
436
+
437
+ @tasks_app.command("create")
438
+ def tasks_create_cmd(
439
+ title: str = typer.Option(..., "--title", "-t"),
440
+ version_id: str = typer.Option(..., "--version-id", "-v"),
441
+ type_: str = typer.Option("New Feature", "--type"),
442
+ priority: str = typer.Option("Medium", "--priority"),
443
+ estimated_hours: float = typer.Option(0, "--estimated-hours"),
444
+ ):
445
+ typer.echo(agents_cli.tasks_create(title, version_id, type_, priority, estimated_hours))
446
+
447
+ @tasks_app.command("next")
448
+ def tasks_next_cmd(project_id: str = typer.Option(None, "--project-id", "-p")):
449
+ typer.echo(agents_cli.tasks_next(project_id))
450
+
451
+ @tasks_app.command("claim")
452
+ def tasks_claim_cmd(task_id: str):
453
+ typer.echo(agents_cli.tasks_claim(task_id))
454
+
455
+ @tasks_app.command("start")
456
+ def tasks_start_cmd(task_id: str):
457
+ typer.echo(agents_cli.tasks_start(task_id))
458
+
459
+ @tasks_app.command("complete")
460
+ def tasks_complete_cmd(
461
+ task_id: str,
462
+ actual_hours: float = typer.Option(0, "--actual-hours"),
463
+ ):
464
+ typer.echo(agents_cli.tasks_complete(task_id, actual_hours))
465
+
466
+ @tasks_app.command("can-start")
467
+ def tasks_can_start_cmd(task_id: str):
468
+ typer.echo(agents_cli.tasks_can_start(task_id))
469
+
470
+ agents_app.add_typer(tasks_app)
471
+
472
+ # Ideas commands (under agents)
386
473
  ideas_app = typer.Typer(name="ideas", help="Ideas management commands")
387
- ideas_app.command("list")(lambda **kwargs: agents_cli.ideas_list(**kwargs))
388
- ideas_app.command("get")(lambda idea_id: agents_cli.ideas_get(idea_id))
389
- ideas_app.command("create")(lambda **kwargs: agents_cli.ideas_create(**kwargs))
390
- ideas_app.command("review")(lambda count: agents_cli.ideas_review(count))
391
- ideas_app.command("accept")(lambda idea_id: agents_cli.ideas_accept(idea_id))
392
- ideas_app.command("reject")(lambda idea_id, reason: agents_cli.ideas_reject(idea_id, reason))
393
- app.add_typer(ideas_app)
394
-
395
- # Work Issues commands
474
+
475
+ @ideas_app.command("list")
476
+ def ideas_list_cmd(
477
+ project_id: str = typer.Option(None, "--project-id", "-p"),
478
+ status: str = typer.Option(None, "--status", "-s"),
479
+ ):
480
+ typer.echo(agents_cli.ideas_list(project_id, status))
481
+
482
+ @ideas_app.command("get")
483
+ def ideas_get_cmd(idea_id: str):
484
+ typer.echo(agents_cli.ideas_get(idea_id))
485
+
486
+ @ideas_app.command("create")
487
+ def ideas_create_cmd(
488
+ title: str = typer.Option(..., "--title", "-t"),
489
+ project_id: str = typer.Option(None, "--project-id", "-p"),
490
+ category: str = typer.Option("Feature", "--category"),
491
+ description: str = typer.Option("", "--description", "-d"),
492
+ proposed_solution: str = typer.Option("", "--proposed-solution"),
493
+ benefits: str = typer.Option("", "--benefits"),
494
+ effort_estimate: str = typer.Option("Medium", "--effort-estimate"),
495
+ context: str = typer.Option("", "--context"),
496
+ ):
497
+ typer.echo(agents_cli.ideas_create(title, project_id, category, description, proposed_solution, benefits, effort_estimate, context))
498
+
499
+ @ideas_app.command("review")
500
+ def ideas_review_cmd(count: int = typer.Option(10, "--count", "-c")):
501
+ typer.echo(agents_cli.ideas_review(count))
502
+
503
+ @ideas_app.command("accept")
504
+ def ideas_accept_cmd(idea_id: str):
505
+ typer.echo(agents_cli.ideas_accept(idea_id))
506
+
507
+ @ideas_app.command("reject")
508
+ def ideas_reject_cmd(
509
+ idea_id: str,
510
+ reason: str = typer.Option("", "--reason", "-r"),
511
+ ):
512
+ typer.echo(agents_cli.ideas_reject(idea_id, reason))
513
+
514
+ agents_app.add_typer(ideas_app)
515
+
516
+ # Work Issues commands (under agents)
396
517
  work_issues_app = typer.Typer(name="work-issues", help="Work Issues management commands")
397
- work_issues_app.command("list")(lambda **kwargs: agents_cli.work_issues_list(**kwargs))
398
- work_issues_app.command("get")(lambda issue_id: agents_cli.work_issues_get(issue_id))
399
- work_issues_app.command("create")(lambda **kwargs: agents_cli.work_issues_create(**kwargs))
400
- work_issues_app.command("resolve")(lambda issue_id, resolution: agents_cli.work_issues_resolve(issue_id, resolution))
401
- work_issues_app.command("blockers")(lambda project_id: agents_cli.work_issues_blockers(project_id))
402
- app.add_typer(work_issues_app)
403
-
404
- # Incidents commands
518
+
519
+ @work_issues_app.command("list")
520
+ def work_issues_list_cmd(
521
+ project_id: str = typer.Option(None, "--project-id", "-p"),
522
+ status: str = typer.Option(None, "--status", "-s"),
523
+ ):
524
+ typer.echo(agents_cli.work_issues_list(project_id, status))
525
+
526
+ @work_issues_app.command("get")
527
+ def work_issues_get_cmd(issue_id: str):
528
+ typer.echo(agents_cli.work_issues_get(issue_id))
529
+
530
+ @work_issues_app.command("create")
531
+ def work_issues_create_cmd(
532
+ title: str = typer.Option(..., "--title", "-t"),
533
+ project_id: str = typer.Option(None, "--project-id", "-p"),
534
+ task_id: str = typer.Option(None, "--task-id"),
535
+ type_: str = typer.Option("Blocker", "--type"),
536
+ severity: str = typer.Option("Medium", "--severity"),
537
+ description: str = typer.Option("", "--description", "-d"),
538
+ context: str = typer.Option("", "--context"),
539
+ proposed_solution: str = typer.Option("", "--proposed-solution"),
540
+ ):
541
+ typer.echo(agents_cli.work_issues_create(title, project_id, task_id, type_, severity, description, context, proposed_solution))
542
+
543
+ @work_issues_app.command("resolve")
544
+ def work_issues_resolve_cmd(
545
+ issue_id: str,
546
+ resolution: str = typer.Option("", "--resolution", "-r"),
547
+ ):
548
+ typer.echo(agents_cli.work_issues_resolve(issue_id, resolution))
549
+
550
+ @work_issues_app.command("blockers")
551
+ def work_issues_blockers_cmd(project_id: str):
552
+ typer.echo(agents_cli.work_issues_blockers(project_id))
553
+
554
+ agents_app.add_typer(work_issues_app)
555
+
556
+ # Incidents commands (under agents)
405
557
  incidents_app = typer.Typer(name="incidents", help="Incidents management commands")
406
- incidents_app.command("list")(lambda **kwargs: agents_cli.incidents_list(**kwargs))
407
- incidents_app.command("get")(lambda incident_id: agents_cli.incidents_get(incident_id))
408
- incidents_app.command("create")(lambda **kwargs: agents_cli.incidents_create(**kwargs))
409
- incidents_app.command("resolve")(lambda incident_id, resolution: agents_cli.incidents_resolve(incident_id, resolution))
410
- incidents_app.command("mttr")(lambda **kwargs: agents_cli.incidents_mttr(**kwargs))
411
- incidents_app.command("sla-violations")(lambda: agents_cli.incidents_sla_violations())
412
- app.add_typer(incidents_app)
558
+
559
+ @incidents_app.command("list")
560
+ def incidents_list_cmd(
561
+ project_id: str = typer.Option(None, "--project-id", "-p"),
562
+ severity: str = typer.Option(None, "--severity", "-s"),
563
+ ):
564
+ typer.echo(agents_cli.incidents_list(project_id, severity))
565
+
566
+ @incidents_app.command("get")
567
+ def incidents_get_cmd(incident_id: str):
568
+ typer.echo(agents_cli.incidents_get(incident_id))
569
+
570
+ @incidents_app.command("create")
571
+ def incidents_create_cmd(
572
+ title: str = typer.Option(..., "--title", "-t"),
573
+ project_id: str = typer.Option(None, "--project-id", "-p"),
574
+ affected_version_id: str = typer.Option(None, "--affected-version-id"),
575
+ severity: str = typer.Option("Medium", "--severity"),
576
+ type_: str = typer.Option("Bug", "--type"),
577
+ ):
578
+ typer.echo(agents_cli.incidents_create(title, project_id, affected_version_id, severity, type_))
579
+
580
+ @incidents_app.command("resolve")
581
+ def incidents_resolve_cmd(
582
+ incident_id: str,
583
+ resolution: str = typer.Option("", "--resolution", "-r"),
584
+ ):
585
+ typer.echo(agents_cli.incidents_resolve(incident_id, resolution))
586
+
587
+ @incidents_app.command("mttr")
588
+ def incidents_mttr_cmd(
589
+ project_id: str = typer.Option(None, "--project-id", "-p"),
590
+ within_days: int = typer.Option(30, "--within-days", "-d"),
591
+ ):
592
+ typer.echo(agents_cli.incidents_mttr(project_id, within_days))
593
+
594
+ @incidents_app.command("sla-violations")
595
+ def incidents_sla_violations_cmd():
596
+ typer.echo(agents_cli.incidents_sla_violations())
597
+
598
+ agents_app.add_typer(incidents_app)
413
599
 
414
600
  def register_sdk_models(self) -> dict[str, type]:
415
601
  """Register workflow entity models."""