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.
- {better_notion-1.2.0 → better_notion-1.4.0}/PKG-INFO +1 -1
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents.py +239 -53
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents_cli.py +60 -133
- {better_notion-1.2.0 → better_notion-1.4.0}/pyproject.toml +1 -1
- {better_notion-1.2.0 → better_notion-1.4.0}/.gitignore +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/LICENSE +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/README.md +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/client.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/blocks.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/comments.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/databases.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/pages.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/collections/users.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/block.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/comment.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/database.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/page.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/entities/user.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/errors.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/oauth.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/base.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/checkbox.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/date.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/email.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/number.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/phone.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/rich_text.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/select.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/title.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/properties/url.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/utils/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_api/utils/pagination.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/async_typer.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/auth.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/blocks.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/comments.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/config.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/databases.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/pages.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/plugins.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/search.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/update.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/users.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/commands/workspace.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/config.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/display.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/errors.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/main.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/markdown.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/response.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_cli/utils/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/base/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/base/entity.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/cache/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/cache/cache.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/client.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/block_manager.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/comment_manager.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/database_manager.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/page_manager.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/managers/user_manager.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/block.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/audio.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/bookmark.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/breadcrumb.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/bullet.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/callout.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/code.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/column.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/column_list.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/divider.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/embed.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/equation.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/file.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/heading.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/image.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/numbered.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/paragraph.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/pdf.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/quote.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/synced_block.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/table.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/table_row.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/template.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/todo.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/toggle.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/blocks/video.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/comment.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/database.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/page.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/models/user.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/parents/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/plugins.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/properties/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/properties/formula.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/properties/parsers.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/properties/relation.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/query/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/query/database_query.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/_sdk/query/filter_translator.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/base.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/loader.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents_sdk/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents_sdk/managers.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents_sdk/models.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/agents_sdk/plugin.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/official/productivity.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/plugins/state.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/auth.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/dependency_resolver.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/project_context.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/rbac.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/schemas.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/state_machine.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/agents/workspace.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/helpers.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/better_notion/utils/retry.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/base/test_entity.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/cache/test_cache.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/blocks/test_advanced_blocks.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/test_block.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/test_database.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/test_database_bug.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/test_page.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/models/test_user.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/properties/test_formula.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/properties/test_parsers.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/properties/test_relation.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/query/test_database_query.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/query/test_filter_translator.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/test_client.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/_sdk/test_comment.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_auth.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_dependency_resolver.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_plugin.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_project_context.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_rbac.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_schemas.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_state_machine.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/agents/test_workspace.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_async_typer.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_config.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_display.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_errors.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_main.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_pages_commands.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_response.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/cli/test_update.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/conftest.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/conftest.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/test_blocks.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/test_databases.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/test_pages.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/test_search.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/integration/test_users.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_agents_cli.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_agents_sdk_integration.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_agents_sdk_managers.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_agents_sdk_models.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_base.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_loader.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_marketplace.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_plugin_commands_state.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_productivity_plugin.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/plugins/test_state.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/sdk/__init__.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/sdk/test_plugin_system.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_client.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_collections.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_entities.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_errors.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_helpers.py +0 -0
- {better_notion-1.2.0 → better_notion-1.4.0}/tests/unit/test_properties.py +0 -0
- {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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
376
|
-
tasks_app.command("
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
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
|
-
|
|
388
|
-
ideas_app.command("
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
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
|
-
|
|
398
|
-
work_issues_app.command("
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
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
|
-
|
|
407
|
-
incidents_app.command("
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
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."""
|