better-notion 1.6.0__tar.gz → 1.8.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 (203) hide show
  1. {better_notion-1.6.0 → better_notion-1.8.0}/PKG-INFO +1 -1
  2. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/docs/base.py +9 -1
  3. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/official/agents.py +168 -30
  4. better_notion-1.8.0/better_notion/plugins/official/agents_schema.py +980 -0
  5. {better_notion-1.6.0 → better_notion-1.8.0}/pyproject.toml +238 -238
  6. better_notion-1.8.0/tests/test_metadata.py +157 -0
  7. better_notion-1.8.0/tests/test_schema_command.py +178 -0
  8. better_notion-1.6.0/better_notion/plugins/official/agents_schema.py +0 -369
  9. {better_notion-1.6.0 → better_notion-1.8.0}/.gitignore +0 -0
  10. {better_notion-1.6.0 → better_notion-1.8.0}/LICENSE +0 -0
  11. {better_notion-1.6.0 → better_notion-1.8.0}/README.md +0 -0
  12. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/__init__.py +0 -0
  13. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/__init__.py +0 -0
  14. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/client.py +0 -0
  15. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/collections/__init__.py +0 -0
  16. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/collections/blocks.py +0 -0
  17. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/collections/comments.py +0 -0
  18. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/collections/databases.py +0 -0
  19. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/collections/pages.py +0 -0
  20. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/collections/users.py +0 -0
  21. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/entities/__init__.py +0 -0
  22. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/entities/block.py +0 -0
  23. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/entities/comment.py +0 -0
  24. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/entities/database.py +0 -0
  25. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/entities/page.py +0 -0
  26. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/entities/user.py +0 -0
  27. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/errors.py +0 -0
  28. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/oauth.py +0 -0
  29. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/properties/__init__.py +0 -0
  30. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/properties/base.py +0 -0
  31. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/properties/checkbox.py +0 -0
  32. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/properties/date.py +0 -0
  33. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/properties/email.py +0 -0
  34. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/properties/number.py +0 -0
  35. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/properties/phone.py +0 -0
  36. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/properties/rich_text.py +0 -0
  37. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/properties/select.py +0 -0
  38. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/properties/title.py +0 -0
  39. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/properties/url.py +0 -0
  40. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/utils/__init__.py +0 -0
  41. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_api/utils/pagination.py +0 -0
  42. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/__init__.py +0 -0
  43. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/async_typer.py +0 -0
  44. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/__init__.py +0 -0
  45. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/auth.py +0 -0
  46. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/blocks.py +0 -0
  47. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/comments.py +0 -0
  48. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/config.py +0 -0
  49. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/databases.py +0 -0
  50. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/pages.py +0 -0
  51. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/plugins.py +0 -0
  52. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/search.py +0 -0
  53. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/update.py +0 -0
  54. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/users.py +0 -0
  55. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/commands/workspace.py +0 -0
  56. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/config.py +0 -0
  57. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/display.py +0 -0
  58. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/docs/__init__.py +0 -0
  59. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/docs/formatters.py +0 -0
  60. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/docs/registry.py +0 -0
  61. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/errors.py +0 -0
  62. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/main.py +0 -0
  63. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/markdown.py +0 -0
  64. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/response.py +0 -0
  65. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_cli/utils/__init__.py +0 -0
  66. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/__init__.py +0 -0
  67. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/base/__init__.py +0 -0
  68. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/base/entity.py +0 -0
  69. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/cache/__init__.py +0 -0
  70. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/cache/cache.py +0 -0
  71. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/client.py +0 -0
  72. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/managers/__init__.py +0 -0
  73. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/managers/block_manager.py +0 -0
  74. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/managers/comment_manager.py +0 -0
  75. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/managers/database_manager.py +0 -0
  76. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/managers/page_manager.py +0 -0
  77. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/managers/user_manager.py +0 -0
  78. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/__init__.py +0 -0
  79. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/block.py +0 -0
  80. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/__init__.py +0 -0
  81. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/audio.py +0 -0
  82. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/bookmark.py +0 -0
  83. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/breadcrumb.py +0 -0
  84. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/bullet.py +0 -0
  85. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/callout.py +0 -0
  86. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/code.py +0 -0
  87. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/column.py +0 -0
  88. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/column_list.py +0 -0
  89. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/divider.py +0 -0
  90. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/embed.py +0 -0
  91. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/equation.py +0 -0
  92. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/file.py +0 -0
  93. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/heading.py +0 -0
  94. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/image.py +0 -0
  95. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/numbered.py +0 -0
  96. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/paragraph.py +0 -0
  97. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/pdf.py +0 -0
  98. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/quote.py +0 -0
  99. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/synced_block.py +0 -0
  100. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/table.py +0 -0
  101. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/table_row.py +0 -0
  102. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/template.py +0 -0
  103. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/todo.py +0 -0
  104. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/toggle.py +0 -0
  105. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/blocks/video.py +0 -0
  106. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/comment.py +0 -0
  107. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/database.py +0 -0
  108. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/page.py +0 -0
  109. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/models/user.py +0 -0
  110. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/parents/__init__.py +0 -0
  111. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/plugins.py +0 -0
  112. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/properties/__init__.py +0 -0
  113. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/properties/formula.py +0 -0
  114. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/properties/parsers.py +0 -0
  115. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/properties/relation.py +0 -0
  116. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/query/__init__.py +0 -0
  117. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/query/database_query.py +0 -0
  118. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/_sdk/query/filter_translator.py +0 -0
  119. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/__init__.py +0 -0
  120. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/base.py +0 -0
  121. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/loader.py +0 -0
  122. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/official/__init__.py +0 -0
  123. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/official/agents_cli.py +0 -0
  124. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/official/agents_sdk/__init__.py +0 -0
  125. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/official/agents_sdk/managers.py +0 -0
  126. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/official/agents_sdk/models.py +0 -0
  127. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/official/agents_sdk/plugin.py +0 -0
  128. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/official/productivity.py +0 -0
  129. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/plugins/state.py +0 -0
  130. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/__init__.py +0 -0
  131. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/agents/__init__.py +0 -0
  132. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/agents/auth.py +0 -0
  133. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/agents/dependency_resolver.py +0 -0
  134. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/agents/metadata.py +0 -0
  135. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/agents/project_context.py +0 -0
  136. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/agents/rbac.py +0 -0
  137. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/agents/schemas.py +0 -0
  138. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/agents/state_machine.py +0 -0
  139. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/agents/workspace.py +0 -0
  140. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/helpers.py +0 -0
  141. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/retry.py +0 -0
  142. {better_notion-1.6.0 → better_notion-1.8.0}/better_notion/utils/validators.py +0 -0
  143. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/base/test_entity.py +0 -0
  144. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/cache/test_cache.py +0 -0
  145. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/models/__init__.py +0 -0
  146. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/models/blocks/test_advanced_blocks.py +0 -0
  147. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/models/test_block.py +0 -0
  148. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/models/test_database.py +0 -0
  149. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/models/test_database_bug.py +0 -0
  150. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/models/test_page.py +0 -0
  151. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/models/test_user.py +0 -0
  152. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/properties/test_formula.py +0 -0
  153. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/properties/test_parsers.py +0 -0
  154. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/properties/test_relation.py +0 -0
  155. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/query/test_database_query.py +0 -0
  156. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/query/test_filter_translator.py +0 -0
  157. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/test_client.py +0 -0
  158. {better_notion-1.6.0 → better_notion-1.8.0}/tests/_sdk/test_comment.py +0 -0
  159. {better_notion-1.6.0 → better_notion-1.8.0}/tests/agents/__init__.py +0 -0
  160. {better_notion-1.6.0 → better_notion-1.8.0}/tests/agents/test_auth.py +0 -0
  161. {better_notion-1.6.0 → better_notion-1.8.0}/tests/agents/test_dependency_resolver.py +0 -0
  162. {better_notion-1.6.0 → better_notion-1.8.0}/tests/agents/test_plugin.py +0 -0
  163. {better_notion-1.6.0 → better_notion-1.8.0}/tests/agents/test_project_context.py +0 -0
  164. {better_notion-1.6.0 → better_notion-1.8.0}/tests/agents/test_rbac.py +0 -0
  165. {better_notion-1.6.0 → better_notion-1.8.0}/tests/agents/test_schemas.py +0 -0
  166. {better_notion-1.6.0 → better_notion-1.8.0}/tests/agents/test_state_machine.py +0 -0
  167. {better_notion-1.6.0 → better_notion-1.8.0}/tests/agents/test_workspace.py +0 -0
  168. {better_notion-1.6.0 → better_notion-1.8.0}/tests/cli/__init__.py +0 -0
  169. {better_notion-1.6.0 → better_notion-1.8.0}/tests/cli/test_async_typer.py +0 -0
  170. {better_notion-1.6.0 → better_notion-1.8.0}/tests/cli/test_config.py +0 -0
  171. {better_notion-1.6.0 → better_notion-1.8.0}/tests/cli/test_display.py +0 -0
  172. {better_notion-1.6.0 → better_notion-1.8.0}/tests/cli/test_errors.py +0 -0
  173. {better_notion-1.6.0 → better_notion-1.8.0}/tests/cli/test_main.py +0 -0
  174. {better_notion-1.6.0 → better_notion-1.8.0}/tests/cli/test_pages_commands.py +0 -0
  175. {better_notion-1.6.0 → better_notion-1.8.0}/tests/cli/test_response.py +0 -0
  176. {better_notion-1.6.0 → better_notion-1.8.0}/tests/cli/test_update.py +0 -0
  177. {better_notion-1.6.0 → better_notion-1.8.0}/tests/conftest.py +0 -0
  178. {better_notion-1.6.0 → better_notion-1.8.0}/tests/integration/conftest.py +0 -0
  179. {better_notion-1.6.0 → better_notion-1.8.0}/tests/integration/test_blocks.py +0 -0
  180. {better_notion-1.6.0 → better_notion-1.8.0}/tests/integration/test_databases.py +0 -0
  181. {better_notion-1.6.0 → better_notion-1.8.0}/tests/integration/test_pages.py +0 -0
  182. {better_notion-1.6.0 → better_notion-1.8.0}/tests/integration/test_search.py +0 -0
  183. {better_notion-1.6.0 → better_notion-1.8.0}/tests/integration/test_users.py +0 -0
  184. {better_notion-1.6.0 → better_notion-1.8.0}/tests/plugins/__init__.py +0 -0
  185. {better_notion-1.6.0 → better_notion-1.8.0}/tests/plugins/test_agents_cli.py +0 -0
  186. {better_notion-1.6.0 → better_notion-1.8.0}/tests/plugins/test_agents_sdk_integration.py +0 -0
  187. {better_notion-1.6.0 → better_notion-1.8.0}/tests/plugins/test_agents_sdk_managers.py +0 -0
  188. {better_notion-1.6.0 → better_notion-1.8.0}/tests/plugins/test_agents_sdk_models.py +0 -0
  189. {better_notion-1.6.0 → better_notion-1.8.0}/tests/plugins/test_base.py +0 -0
  190. {better_notion-1.6.0 → better_notion-1.8.0}/tests/plugins/test_loader.py +0 -0
  191. {better_notion-1.6.0 → better_notion-1.8.0}/tests/plugins/test_marketplace.py +0 -0
  192. {better_notion-1.6.0 → better_notion-1.8.0}/tests/plugins/test_plugin_commands_state.py +0 -0
  193. {better_notion-1.6.0 → better_notion-1.8.0}/tests/plugins/test_productivity_plugin.py +0 -0
  194. {better_notion-1.6.0 → better_notion-1.8.0}/tests/plugins/test_state.py +0 -0
  195. {better_notion-1.6.0 → better_notion-1.8.0}/tests/sdk/__init__.py +0 -0
  196. {better_notion-1.6.0 → better_notion-1.8.0}/tests/sdk/test_plugin_system.py +0 -0
  197. {better_notion-1.6.0 → better_notion-1.8.0}/tests/unit/test_client.py +0 -0
  198. {better_notion-1.6.0 → better_notion-1.8.0}/tests/unit/test_collections.py +0 -0
  199. {better_notion-1.6.0 → better_notion-1.8.0}/tests/unit/test_entities.py +0 -0
  200. {better_notion-1.6.0 → better_notion-1.8.0}/tests/unit/test_errors.py +0 -0
  201. {better_notion-1.6.0 → better_notion-1.8.0}/tests/unit/test_helpers.py +0 -0
  202. {better_notion-1.6.0 → better_notion-1.8.0}/tests/unit/test_properties.py +0 -0
  203. {better_notion-1.6.0 → better_notion-1.8.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.6.0
3
+ Version: 1.8.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
@@ -138,6 +138,7 @@ class Command:
138
138
  workflow: Which workflow this command belongs to
139
139
  when_to_use: When this command should be used
140
140
  error_recovery: Error handling strategies
141
+ subcommands: Dict of subcommand name -> subcommand documentation
141
142
  """
142
143
 
143
144
  name: str
@@ -147,10 +148,11 @@ class Command:
147
148
  workflow: str | None = None
148
149
  when_to_use: list[str] = field(default_factory=list)
149
150
  error_recovery: dict[str, dict[str, Any]] = field(default_factory=dict)
151
+ subcommands: dict[str, dict[str, Any]] = field(default_factory=dict)
150
152
 
151
153
  def to_dict(self) -> dict[str, Any]:
152
154
  """Convert to dictionary for JSON serialization."""
153
- return {
155
+ result = {
154
156
  "name": self.name,
155
157
  "purpose": self.purpose,
156
158
  "description": self.description,
@@ -160,6 +162,12 @@ class Command:
160
162
  "error_recovery": self.error_recovery,
161
163
  }
162
164
 
165
+ # Add subcommands if present
166
+ if self.subcommands:
167
+ result["subcommands"] = self.subcommands
168
+
169
+ return result
170
+
163
171
 
164
172
  @dataclass
165
173
  class Schema:
@@ -169,22 +169,93 @@ class AgentsPlugin(CombinedPluginInterface):
169
169
  "state": "already_initialized",
170
170
  "description": "Agents workspace already exists in this page",
171
171
  },
172
+ "hierarchy": {
173
+ "description": "Agents workflow hierarchy",
174
+ "levels": [
175
+ {
176
+ "level": 1,
177
+ "entity": "Organization",
178
+ "database": "organizations",
179
+ "required_before": ["Projects"]
180
+ },
181
+ {
182
+ "level": 2,
183
+ "entity": "Project",
184
+ "database": "projects",
185
+ "required_before": ["Versions", "Tasks"],
186
+ "requires": ["Organization"]
187
+ },
188
+ {
189
+ "level": 3,
190
+ "entity": "Version",
191
+ "database": "versions",
192
+ "required_before": ["Tasks"],
193
+ "requires": ["Project"]
194
+ },
195
+ {
196
+ "level": 4,
197
+ "entity": "Task",
198
+ "database": "tasks",
199
+ "requires": ["Version"]
200
+ }
201
+ ]
202
+ },
172
203
  "next_steps": [
173
204
  {
174
- "action": "query_tasks",
175
- "command": f"notion databases query --database {database_ids.get('tasks', 'TASKS_DB_ID')}",
176
- "purpose": "List all tasks in workspace",
205
+ "action": "check_organizations",
206
+ "command": "notion agents orgs list",
207
+ "purpose": "Check if organizations exist",
208
+ "why": "Organizations are the starting point - create them first"
209
+ },
210
+ {
211
+ "action": "create_organization",
212
+ "command": "notion agents orgs create --name 'Organization Name'",
213
+ "purpose": "Create a new organization",
214
+ "when": "If no organizations exist",
215
+ "examples": [
216
+ "notion agents orgs create --name 'WareflowX'",
217
+ "notion agents orgs create --name 'WareflowX' --slug 'wareflowx'"
218
+ ]
219
+ },
220
+ {
221
+ "action": "create_project",
222
+ "command": "notion agents projects create --org 'Org Name' --name 'Project Name'",
223
+ "purpose": "Create a project in an organization",
224
+ "requires": ["organization_exists"],
225
+ "examples": [
226
+ "notion agents projects create --org 'WareflowX' --name 'Website Redesign'"
227
+ ]
228
+ },
229
+ {
230
+ "action": "create_version",
231
+ "command": "notion agents versions create --project 'Project' --name 'v1.0.0'",
232
+ "purpose": "Create a version in a project",
233
+ "requires": ["project_exists"],
177
234
  },
178
235
  {
179
236
  "action": "create_task",
180
- "description": "To create a new task, use pages create with Version relation",
237
+ "command": "notion agents tasks create --version 'v1.0.0' --name 'Task Name'",
238
+ "purpose": "Create a task in a version",
239
+ "requires": ["version_exists"],
181
240
  },
182
241
  ],
183
242
  "capabilities": [
243
+ "create_organizations",
244
+ "create_projects",
245
+ "create_versions",
184
246
  "create_tasks",
185
- "manage_versions",
186
- "track_projects",
247
+ "manage_ideas",
248
+ "track_work_issues",
249
+ "manage_incidents",
187
250
  ],
251
+ "quick_reference": {
252
+ "lifecycle": "Organization → Project → Version → Task",
253
+ "create_org": "notion agents orgs create --name NAME",
254
+ "list_orgs": "notion agents orgs list",
255
+ "create_project": "notion agents projects create --org ORG --name NAME",
256
+ "create_version": "notion agents versions create --project PROJECT --name VERSION",
257
+ "create_task": "notion agents tasks create --version VERSION --name TASK",
258
+ }
188
259
  }
189
260
  )
190
261
  except Exception:
@@ -212,40 +283,107 @@ class AgentsPlugin(CombinedPluginInterface):
212
283
  "description": "Agents workspace ready for task management",
213
284
  "workspace_name": workspace_name,
214
285
  },
286
+ "hierarchy": {
287
+ "description": "Agents workflow hierarchy - follow this order",
288
+ "lifecycle": "Organization → Project → Version → Task",
289
+ "levels": [
290
+ {
291
+ "level": 1,
292
+ "entity": "Organization",
293
+ "database": "organizations",
294
+ "command": "notion agents orgs create --name 'Org Name'",
295
+ "next": "Projects"
296
+ },
297
+ {
298
+ "level": 2,
299
+ "entity": "Project",
300
+ "database": "projects",
301
+ "command": "notion agents projects create --org 'Org' --name 'Project'",
302
+ "requires": ["Organization"],
303
+ "next": "Versions"
304
+ },
305
+ {
306
+ "level": 3,
307
+ "entity": "Version",
308
+ "database": "versions",
309
+ "command": "notion agents versions create --project 'Project' --name 'v1.0.0'",
310
+ "requires": ["Project"],
311
+ "next": "Tasks"
312
+ },
313
+ {
314
+ "level": 4,
315
+ "entity": "Task",
316
+ "database": "tasks",
317
+ "command": "notion agents tasks create --version 'v1.0.0' --name 'Task'",
318
+ "requires": ["Version"]
319
+ }
320
+ ]
321
+ },
215
322
  "next_steps": [
216
323
  {
217
- "command": "agents info --parent-page " + parent_page_id,
218
- "purpose": "View workspace status and database IDs",
219
- "when": "To verify workspace setup",
324
+ "action": "first_create_organization",
325
+ "priority": 1,
326
+ "command": "notion agents orgs create --name 'Your Organization Name'",
327
+ "purpose": "Create your first organization (required before projects)",
328
+ "why": "Organizations are the top-level entity - all projects belong to an organization",
329
+ "examples": [
330
+ "notion agents orgs create --name 'WareflowX'",
331
+ "notion agents orgs create --name 'WareflowX' --slug 'wareflowx'"
332
+ ]
220
333
  },
221
334
  {
222
- "command": f"notion databases query --database {database_ids.get('tasks', 'TASKS_DB_ID')}",
223
- "purpose": "List all tasks in workspace",
224
- "when": "To see existing tasks",
335
+ "action": "then_create_project",
336
+ "priority": 2,
337
+ "command": "notion agents projects create --org 'Org Name' --name 'Project Name'",
338
+ "purpose": "Create a project in the organization",
339
+ "requires": ["organization_exists"],
340
+ },
341
+ {
342
+ "action": "then_create_version",
343
+ "priority": 3,
344
+ "command": "notion agents versions create --project 'Project' --name 'v1.0.0'",
345
+ "purpose": "Create a version in the project",
346
+ "requires": ["project_exists"],
225
347
  },
226
- ],
227
- "capabilities": [
228
- "create_tasks",
229
- "manage_versions",
230
- "track_projects",
231
- "manage_ideas",
232
- "track_incidents",
233
- ],
234
- "common_workflows": [
235
348
  {
236
- "name": "create_organization",
237
- "description": "Create a new organization in the workspace",
238
- "command": f"notion pages create --parent {database_ids.get('organizations', 'ORGANIZATIONS_DB_ID')} --title 'Organization Name'",
349
+ "action": "then_create_tasks",
350
+ "priority": 4,
351
+ "command": "notion agents tasks create --version 'v1.0.0' --name 'Task Name'",
352
+ "purpose": "Create tasks in the version",
353
+ "requires": ["version_exists"],
239
354
  },
240
355
  {
241
- "name": "create_task",
242
- "description": "Create a task in the workspace",
243
- "steps": [
244
- f"agents info --parent-page {parent_page_id}",
245
- f"notion pages create --parent {database_ids.get('tasks', 'TASKS_DB_ID')} --title 'Task Name' --properties '{{\"Status\": \"Todo\", \"Version\": \"VERSION_ID\"}}'",
246
- ],
356
+ "action": "verify_setup",
357
+ "command": "agents info --parent-page " + parent_page_id,
358
+ "purpose": "View workspace status and database IDs",
359
+ "when": "Anytime to verify setup",
247
360
  },
248
361
  ],
362
+ "capabilities": [
363
+ "create_organizations",
364
+ "create_projects",
365
+ "create_versions",
366
+ "create_tasks",
367
+ "manage_ideas",
368
+ "track_work_issues",
369
+ "manage_incidents",
370
+ ],
371
+ "quick_start": {
372
+ "description": "Quick start guide - create your first workflow",
373
+ "steps": [
374
+ "1. Create organization: notion agents orgs create --name 'WareflowX'",
375
+ "2. Create project: notion agents projects create --org 'WareflowX' --name 'Website Redesign'",
376
+ "3. Create version: notion agents versions create --project 'Website Redesign' --name 'v1.0.0'",
377
+ "4. Create task: notion agents tasks create --version 'v1.0.0' --name 'Fix login bug'"
378
+ ]
379
+ },
380
+ "quick_reference": {
381
+ "list_orgs": "notion agents orgs list",
382
+ "list_projects": "notion agents projects list",
383
+ "list_versions": "notion agents versions list --project 'Project'",
384
+ "list_tasks": "notion agents tasks list --version 'v1.0.0'",
385
+ "find_next_task": "notion agents tasks next --version 'v1.0.0'"
386
+ }
249
387
  }
250
388
  )
251
389