synapse-sdk 1.0.0a75__tar.gz → 1.0.0a76__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.
Potentially problematic release.
This version of synapse-sdk might be problematic. Click here for more details.
- synapse_sdk-1.0.0a76/.claude/commands/compare-branch.md +14 -0
- synapse_sdk-1.0.0a76/.claude/commands/review-pr.md +137 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/.gitignore +4 -0
- synapse_sdk-1.0.0a76/.mcp.json +22 -0
- synapse_sdk-1.0.0a76/AGENT.md +363 -0
- synapse_sdk-1.0.0a76/CLAUDE.md +1 -0
- synapse_sdk-1.0.0a76/GEMINI.md +1 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/Makefile +11 -1
- synapse_sdk-1.0.0a76/P1_rules.md +51 -0
- synapse_sdk-1.0.0a76/P2_rules.md +65 -0
- synapse_sdk-1.0.0a76/P3_rules.md +62 -0
- synapse_sdk-1.0.0a76/P4_rules.md +49 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/PKG-INFO +36 -1
- synapse_sdk-1.0.0a76/README.md +60 -0
- synapse_sdk-1.0.0a76/docs/api/plugins/utils.md +328 -0
- synapse_sdk-1.0.0a76/docs/contributing.md +306 -0
- synapse_sdk-1.0.0a76/docs/features/index.md +24 -0
- synapse_sdk-1.0.0a76/docs/features/plugins/index.md +509 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/sidebars.ts +1 -1
- synapse_sdk-1.0.0a76/synapse_sdk/plugins/utils/__init__.py +43 -0
- synapse_sdk-1.0.0a76/synapse_sdk/plugins/utils/actions.py +119 -0
- synapse_sdk-1.0.0a76/synapse_sdk/plugins/utils/config.py +203 -0
- synapse_sdk-1.0.0a76/synapse_sdk/plugins/utils/legacy.py +95 -0
- synapse_sdk-1.0.0a76/synapse_sdk/plugins/utils/registry.py +58 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/utils.py +27 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk.egg-info/PKG-INFO +36 -1
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk.egg-info/SOURCES.txt +20 -1
- synapse_sdk-1.0.0a76/tests/plugins/utils/test_actions.py +238 -0
- synapse_sdk-1.0.0a76/tests/plugins/utils/test_config.py +402 -0
- synapse_sdk-1.0.0a76/tests/plugins/utils/test_registry.py +204 -0
- synapse_sdk-1.0.0a76/tests/utils/converters/fixtures/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/uv.lock +1 -1
- synapse_sdk-1.0.0a75/README.md +0 -25
- synapse_sdk-1.0.0a75/docs/api/plugins/utils.md +0 -43
- synapse_sdk-1.0.0a75/docs/changelog.md +0 -17
- synapse_sdk-1.0.0a75/docs/contributing.md +0 -13
- synapse_sdk-1.0.0a75/docs/features/index.md +0 -16
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/.coverage +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/.github/workflows/lint.yml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/.github/workflows/pypi-publish.yml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/.github/workflows/test.yml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/.pre-commit-config.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/LICENSE +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/api/clients/agent.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/api/clients/backend.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/api/clients/base.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/api/index.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/api/plugins/categories.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/api/plugins/models.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/api/utils/file.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/api/utils/storage.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/api/utils/types.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/categories.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/concepts/index.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/configuration.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/examples/index.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/faq.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/features/converters/index.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/i18n/ko/code.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/i18n/ko/docusaurus-plugin-content-docs/current/introduction.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/i18n/ko/docusaurus-theme-classic/footer.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/i18n/ko/docusaurus-theme-classic/navbar.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/installation.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/introduction.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/quickstart.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/troubleshooting.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-basics/_category_.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-basics/congratulations.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-basics/create-a-blog-post.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-basics/create-a-document.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-basics/create-a-page.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-basics/deploy-your-site.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-basics/markdown-features.mdx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-extras/_category_.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-extras/img/localeDropdown.png +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-extras/manage-docs-versions.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/docs/tutorial-extras/translate-your-site.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/locale/en/LC_MESSAGES/messages.mo +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/locale/en/LC_MESSAGES/messages.po +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/locale/ko/LC_MESSAGES/messages.mo +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/locale/ko/LC_MESSAGES/messages.po +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/pyproject.toml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/pytest-ci.ini +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/pytest.ini +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/requirements.test.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/requirements.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/setup.cfg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/alias/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/alias/create.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/alias/dataclass.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/alias/default.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/alias/delete.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/alias/list.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/alias/read.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/alias/update.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/alias/utils.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/config.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/devtools.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/plugin/create.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/plugin/publish.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/cli/plugin/run.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/agent/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/agent/core.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/agent/ray.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/agent/service.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/backend/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/backend/annotation.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/backend/core.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/backend/data_collection.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/backend/hitl.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/backend/integration.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/backend/ml.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/backend/models.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/base.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/exceptions.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/ray/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/ray/core.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/ray/serve.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/utils.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/validators/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/clients/validators/collections.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/config.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/.gitignore +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/README.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/blog/authors.yml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/blog/tags.yml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/docusaurus.config.ts +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/package-lock.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/package.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/src/css/custom.css +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/src/pages/index.module.css +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/src/pages/index.tsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/src/pages/markdown-page.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/static/.nojekyll +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/static/img/logo.png +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/docs/tsconfig.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/models.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/server.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/utils.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/.gitignore +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/README.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/dist/index.html +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/index.html +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/jsconfig.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/package-lock.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/package.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/pnpm-lock.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/App.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/App.module.css +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/assets/favicon.ico +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/components/Breadcrumbs.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/components/Layout.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/components/LogViewer.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/components/MessageViewer.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/components/NavigationSidebar.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/components/ServerStatusBar.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/components/icons.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/index.css +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/index.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/logo.svg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/router.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/utils/api.js +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/views/ApplicationDetailView.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/views/ApplicationsView.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/views/HomeView.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/views/JobDetailView.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/src/views/PluginView.jsx +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/devtools/web/vite.config.js +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/i18n.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/loggers.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/base.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/data_validation/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/data_validation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/data_validation/actions/validation.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/data_validation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/data_validation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/decorators.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/export/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/export/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/export/actions/export.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/export/enums.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/export/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/export/templates/plugin/export.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/actions/deployment.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/actions/gradio.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/actions/inference.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/actions/test.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/actions/train.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/actions/tune.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/base/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/base/inference.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/post_annotation/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/post_annotation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/post_annotation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/pre_annotation/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/to_task.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/registry.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/smart_tool/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/smart_tool/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/smart_tool/actions/auto_label.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/templates.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/upload/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/upload/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/upload/actions/upload.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/upload/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/enums.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/exceptions.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/models.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/cookiecutter.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/hooks/post_gen_project.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/hooks/pre_prompt.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/plugin-config-schema.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/schema.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.pre-commit-config.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/README.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/pyproject.toml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/plugins/upload.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/shared/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/shared/enums.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/types.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/coco/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/coco/from_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/coco/to_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/dm/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/dm/from_v1.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/dm/to_v1.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/pascal/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/pascal/from_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/pascal/to_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/yolo/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/yolo/from_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/converters/yolo/to_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/dataset.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/debug.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/file.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/http.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/module_loading.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/network.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/pydantic/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/pydantic/config.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/pydantic/errors.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/pydantic/validators.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/storage/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/storage/providers/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/storage/providers/gcp.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/storage/providers/http.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/storage/providers/s3.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/storage/providers/sftp.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/storage/registry.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk/utils/string.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk.egg-info/dependency_links.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk.egg-info/entry_points.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk.egg-info/requires.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/synapse_sdk.egg-info/top_level.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/README.md +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/clients/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/clients/conftest.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/clients/test_backend_models.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/clients/test_base_client.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/clients/test_collection_validators.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/conftest.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/loggers/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/loggers/conftest.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/loggers/test_base_logger.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/plugins/conftest.py +0 -0
- {synapse_sdk-1.0.0a75/tests/utils/converters → synapse_sdk-1.0.0a76/tests/plugins/utils}/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/test_cli.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/test_cli_integration.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/__init__,py +0 -0
- {synapse_sdk-1.0.0a75/tests/utils/converters/fixtures → synapse_sdk-1.0.0a76/tests/utils/converters}/__init__.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/conftest.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/coco.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/annotations.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/new_dm_data8.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/new_dm_data9.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/annotations.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data4.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data5.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data6.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/categorized/valid/annotations.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/categorized/valid/new_dm_data7.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/annotations.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data1.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data2.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data3.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_1.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_2.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_3.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_1.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_2.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_3.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_4.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_5.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_6.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_7.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_4.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_5.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_6.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_7.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/json/dm_8.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/json/dm_9.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/original_files/dm_8.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/original_files/dm_9.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_1.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_2.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_3.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_1.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_2.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_3.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/ver1/json/25669.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/dm/ver2/json/25669.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/classes.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9139.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9140.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9141.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9139.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9140.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9141.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9136.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9137.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9138.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9136.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9137.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9138.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9125.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9126.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9127.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9125.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9126.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9127.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9122.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9123.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9124.xml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9122.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9123.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9124.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/classes.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/dataset.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13744.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13745.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13746.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13744.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13745.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13746.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/train/images/13782.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/train/labels/13782.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/images/13761.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/images/13764.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/labels/13761.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/labels/13764.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/classes.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/dataset.yaml +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/images/25332.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/images/25334.jpg +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/labels/25332.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/labels/25334.txt +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/pcd/dm/ver1/json/23791.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/pcd/dm/ver2/json/23791.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/prompt/dm/ver1/json/18662.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/prompt/dm/ver2/json/18662.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/text/dm/ver1/json/23811.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/text/dm/ver2/json/23811.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/video/dm/ver1/json/23831.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/data_types/video/dm/ver2/json/23831.json +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/dm_schema.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/pascal.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/fixtures/yolo.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/test_coco_from_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/test_coco_to_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/test_dm_v1_to_v2.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/test_dm_v2_to_v1.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/test_pascal_from_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/test_pascal_to_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/test_yolo_from_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/converters/test_yolo_to_dm.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/storage/conftest.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/storage/test_provider_selection.py +0 -0
- {synapse_sdk-1.0.0a75 → synapse_sdk-1.0.0a76}/tests/utils/test_debug.py +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: compare-branches
|
|
3
|
+
description: Compare changes between branches
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Please compare the changes between the current branch and main using GitHub MCP.
|
|
7
|
+
|
|
8
|
+
Analyze:
|
|
9
|
+
1. File changes and their impact
|
|
10
|
+
2. Code quality improvements or regressions
|
|
11
|
+
3. Potential conflicts or issues
|
|
12
|
+
4. Testing implications
|
|
13
|
+
|
|
14
|
+
Branch to compare: $ARGUMENTS (default: main if not specified)
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-pr
|
|
3
|
+
description: Comprehensive PR review using GitHub MCP with P1-P4 Code Review Rules
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Please perform a comprehensive review of PR using the GitHub MCP server.
|
|
7
|
+
|
|
8
|
+
**Arguments:**
|
|
9
|
+
- First argument: PR number (required)
|
|
10
|
+
- Second argument: Language for review comments - "en" for English, "ko" for Korean (optional, defaults to "en")
|
|
11
|
+
|
|
12
|
+
**Usage Examples:**
|
|
13
|
+
- `/review-pr 123` - Review PR #123 with English comments
|
|
14
|
+
- `/review-pr 123 en` - Review PR #123 with English comments
|
|
15
|
+
- `/review-pr 123 ko` - Review PR #123 with Korean comments
|
|
16
|
+
|
|
17
|
+
**Parse Arguments:**
|
|
18
|
+
Extract PR number from first argument and language preference from second argument (if provided). If second argument is not "ko", default to English ("en").
|
|
19
|
+
|
|
20
|
+
**IMPORTANT Review Decision Logic:**
|
|
21
|
+
1. **Track all P1, P2, P3 violations found during review**
|
|
22
|
+
2. **If ANY P1, P2, or P3 violations are found** → Use `--request-changes`
|
|
23
|
+
3. **If ONLY P4 violations or no violations found** → Use `--approve`
|
|
24
|
+
4. **Never use `--comment` as the main review action** - always choose between approve or request-changes
|
|
25
|
+
|
|
26
|
+
**Review Process:**
|
|
27
|
+
1. Read and load P1-P4 Code Review Rules from the following files:
|
|
28
|
+
- P1_rules.md (Critical - Security and Stability)
|
|
29
|
+
- P2_rules.md (High Priority - Core functionality and architecture)
|
|
30
|
+
- P3_rules.md (Medium Priority - Best practices and maintainability)
|
|
31
|
+
- P4_rules.md (Low Priority - Code style and formatting)
|
|
32
|
+
2. Fetch PR details and file changes
|
|
33
|
+
3. Apply P1-P4 Code Review Rules systematically against the changes
|
|
34
|
+
4. Analyze code quality, security, and performance
|
|
35
|
+
5. Check for test coverage and documentation
|
|
36
|
+
6. Look for potential bugs or issues
|
|
37
|
+
7. Provide specific, actionable feedback with priority levels
|
|
38
|
+
8. Create review comments directly on the PR for each issue found
|
|
39
|
+
|
|
40
|
+
**P1-P4 Code Review Rules Application:**
|
|
41
|
+
|
|
42
|
+
IMPORTANT: Before starting the review, read the complete rule sets from these files:
|
|
43
|
+
- `P1_rules.md`
|
|
44
|
+
- `P2_rules.md`
|
|
45
|
+
- `P3_rules.md`
|
|
46
|
+
- `P4_rules.md`
|
|
47
|
+
|
|
48
|
+
Apply ALL rules from these files during the review process. The rules cover:
|
|
49
|
+
|
|
50
|
+
**P1 Rules (Critical - MUST FIX):**
|
|
51
|
+
- Security and database integrity issues
|
|
52
|
+
- Critical Django/DRF patterns
|
|
53
|
+
- System stability concerns
|
|
54
|
+
|
|
55
|
+
**P2 Rules (High Priority):**
|
|
56
|
+
- Core Django/DRF best practices
|
|
57
|
+
- Architecture and design patterns
|
|
58
|
+
- Performance considerations
|
|
59
|
+
|
|
60
|
+
**P3 Rules (Medium Priority):**
|
|
61
|
+
- Code maintainability
|
|
62
|
+
- Best practices and conventions
|
|
63
|
+
- Safety and error handling
|
|
64
|
+
|
|
65
|
+
**P4 Rules (Low Priority - Style):**
|
|
66
|
+
- Code formatting and style
|
|
67
|
+
- Naming conventions
|
|
68
|
+
- Consistency standards
|
|
69
|
+
|
|
70
|
+
**Review Output Format:**
|
|
71
|
+
For each violation found:
|
|
72
|
+
1. **Report to user** with this format:
|
|
73
|
+
- **Rule Category:** P1/P2/P3/P4
|
|
74
|
+
- **Specific Rule:** Quote the exact rule from the files
|
|
75
|
+
- **Location:** File and line number
|
|
76
|
+
- **Issue:** What violates the rule
|
|
77
|
+
- **Recommendation:** How to fix it based on the rule guidance
|
|
78
|
+
- **Impact:** Why this matters (reference rule explanation)
|
|
79
|
+
|
|
80
|
+
2. **Create PR review comment** using GitHub CLI:
|
|
81
|
+
- Use `gh pr review {PR_NUMBER} --comment-body "comment text"` for general review comments
|
|
82
|
+
- Use `gh pr comment {PR_NUMBER} --body "comment text"` for specific line comments when applicable
|
|
83
|
+
- Format comments with clear priority indicators: [P1], [P2], [P3], [P4]
|
|
84
|
+
- Include rule reference and actionable guidance in each comment
|
|
85
|
+
- **IMPORTANT:** Write all comments in the selected language (English or Korean)
|
|
86
|
+
|
|
87
|
+
**Review Actions:**
|
|
88
|
+
1. **Submit overall review** with summary using: `gh pr review {PR_NUMBER} --approve/--request-changes --body "overall review summary"`
|
|
89
|
+
2. **Add individual comments** for each rule violation found
|
|
90
|
+
3. **Use appropriate review status:**
|
|
91
|
+
- `--request-changes` if any P1, P2, or P3 violations are found
|
|
92
|
+
- `--approve` if only P4 violations or no issues found
|
|
93
|
+
- `--comment` for informational feedback only (no rule violations)
|
|
94
|
+
4. **Language Requirements:**
|
|
95
|
+
- Write ALL review comments and summary in the selected language
|
|
96
|
+
- Use appropriate technical terminology for the chosen language
|
|
97
|
+
- Maintain professional tone in both languages
|
|
98
|
+
|
|
99
|
+
**Focus Areas:**
|
|
100
|
+
- **Priority 1 (P1):** Critical security and stability issues (MUST FIX) → REQUEST CHANGES
|
|
101
|
+
- **Priority 2 (P2):** Core functionality and architecture (SHOULD FIX) → REQUEST CHANGES
|
|
102
|
+
- **Priority 3 (P3):** Best practices and maintainability (SHOULD FIX) → REQUEST CHANGES
|
|
103
|
+
- **Priority 4 (P4):** Code style and formatting (OPTIONAL) → APPROVE WITH COMMENTS
|
|
104
|
+
- Test coverage and documentation completeness
|
|
105
|
+
- Breaking changes and backward compatibility
|
|
106
|
+
|
|
107
|
+
**GitHub CLI Commands to Use:**
|
|
108
|
+
- `gh pr view {PR_NUMBER} --json title,body,state,author,files,commits`
|
|
109
|
+
- `gh pr diff {PR_NUMBER}`
|
|
110
|
+
- `gh pr review {PR_NUMBER} --comment-body "review summary"`
|
|
111
|
+
- `gh pr comment {PR_NUMBER} --body "specific comment"`
|
|
112
|
+
|
|
113
|
+
**Language-Specific Comment Templates:**
|
|
114
|
+
|
|
115
|
+
**English Template:**
|
|
116
|
+
```
|
|
117
|
+
[P{LEVEL}] **{TITLE}**
|
|
118
|
+
|
|
119
|
+
{DESCRIPTION}
|
|
120
|
+
|
|
121
|
+
**Location:** {FILE}:{LINE}
|
|
122
|
+
**Issue:** {ISSUE_DESCRIPTION}
|
|
123
|
+
**Recommendation:** {RECOMMENDATION}
|
|
124
|
+
**Rule Reference:** {RULE_QUOTE}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Korean Template:**
|
|
128
|
+
```
|
|
129
|
+
[P{LEVEL}] **{TITLE}**
|
|
130
|
+
|
|
131
|
+
{DESCRIPTION}
|
|
132
|
+
|
|
133
|
+
**위치:** {FILE}:{LINE}
|
|
134
|
+
**문제점:** {ISSUE_DESCRIPTION}
|
|
135
|
+
**권장사항:** {RECOMMENDATION}
|
|
136
|
+
**규칙 참조:** {RULE_QUOTE}
|
|
137
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"github": {
|
|
4
|
+
"command": "docker",
|
|
5
|
+
"args": [
|
|
6
|
+
"run",
|
|
7
|
+
"-i",
|
|
8
|
+
"--rm",
|
|
9
|
+
"-e",
|
|
10
|
+
"GITHUB_PERSONAL_ACCESS_TOKEN",
|
|
11
|
+
"ghcr.io/github/github-mcp-server"
|
|
12
|
+
],
|
|
13
|
+
"env": {
|
|
14
|
+
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"filesystem": {
|
|
18
|
+
"command": "npx",
|
|
19
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "./"]
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
# Synapse SDK Development Guide
|
|
2
|
+
|
|
3
|
+
Always follow the instructions in plan.md. When I say "go", find the next unmarked test in plan.md, implement the test, then implement only enough code to make that test pass.
|
|
4
|
+
|
|
5
|
+
## Overall Engineering Principle
|
|
6
|
+
|
|
7
|
+
### ROLE AND EXPERTISE
|
|
8
|
+
|
|
9
|
+
You are a senior software engineer who follows Kent Beck's Test-Driven Development (TDD) and Tidy First principles. Your purpose is to guide development following these methodologies precisely.
|
|
10
|
+
|
|
11
|
+
### CORE DEVELOPMENT PRINCIPLES
|
|
12
|
+
|
|
13
|
+
- Always follow the TDD cycle: Red → Green → Refactor
|
|
14
|
+
- Write the simplest failing test first
|
|
15
|
+
- Implement the minimum code needed to make tests pass
|
|
16
|
+
- Refactor only after tests are passing
|
|
17
|
+
- Follow Beck's "Tidy First" approach by separating structural changes from behavioral changes
|
|
18
|
+
- Maintain high code quality throughout development
|
|
19
|
+
|
|
20
|
+
### TDD METHODOLOGY GUIDANCE
|
|
21
|
+
|
|
22
|
+
- Start by writing a failing test that defines a small increment of functionality
|
|
23
|
+
- Use meaningful test names that describe behavior (e.g., "shouldSumTwoPositiveNumbers")
|
|
24
|
+
- Make test failures clear and informative
|
|
25
|
+
- Write just enough code to make the test pass - no more
|
|
26
|
+
- Once tests pass, consider if refactoring is needed
|
|
27
|
+
- Repeat the cycle for new functionality
|
|
28
|
+
- When fixing a defect, first write an API-level failing test then write the smallest possible test that replicates the problem then get both tests to pass.
|
|
29
|
+
|
|
30
|
+
### TIDY FIRST APPROACH
|
|
31
|
+
|
|
32
|
+
- Separate all changes into two distinct types:
|
|
33
|
+
1. STRUCTURAL CHANGES: Rearranging code without changing behavior (renaming, extracting methods, moving code)
|
|
34
|
+
2. BEHAVIORAL CHANGES: Adding or modifying actual functionality
|
|
35
|
+
- Never mix structural and behavioral changes in the same commit
|
|
36
|
+
- Always make structural changes first when both are needed
|
|
37
|
+
- Validate structural changes do not alter behavior by running tests before and after
|
|
38
|
+
|
|
39
|
+
### COMMIT DISCIPLINE
|
|
40
|
+
|
|
41
|
+
- Only commit when:
|
|
42
|
+
1. ALL tests are passing
|
|
43
|
+
2. ALL compiler/linter warnings have been resolved
|
|
44
|
+
3. The change represents a single logical unit of work
|
|
45
|
+
4. Commit messages clearly state whether the commit contains structural or behavioral changes
|
|
46
|
+
- Use small, frequent commits rather than large, infrequent ones
|
|
47
|
+
|
|
48
|
+
### CODE QUALITY STANDARDS
|
|
49
|
+
|
|
50
|
+
- Eliminate duplication ruthlessly
|
|
51
|
+
- Express intent clearly through naming and structure
|
|
52
|
+
- Make dependencies explicit
|
|
53
|
+
- Keep methods small and focused on a single responsibility
|
|
54
|
+
- Minimize state and side effects
|
|
55
|
+
- Use the simplest solution that could possibly work
|
|
56
|
+
|
|
57
|
+
### REFACTORING GUIDELINES
|
|
58
|
+
|
|
59
|
+
- Refactor only when tests are passing (in the "Green" phase)
|
|
60
|
+
- Use established refactoring patterns with their proper names
|
|
61
|
+
- Make one refactoring change at a time
|
|
62
|
+
- Run tests after each refactoring step
|
|
63
|
+
- Prioritize refactorings that remove duplication or improve clarity
|
|
64
|
+
|
|
65
|
+
### EXAMPLE WORKFLOW
|
|
66
|
+
|
|
67
|
+
When approaching a new feature:
|
|
68
|
+
|
|
69
|
+
1. Write a simple failing test for a small part of the feature
|
|
70
|
+
2. Implement the bare minimum to make it pass
|
|
71
|
+
3. Run tests to confirm they pass (Green)
|
|
72
|
+
4. Make any necessary structural changes (Tidy First), running tests after each change
|
|
73
|
+
5. Commit structural changes separately
|
|
74
|
+
6. Add another test for the next small increment of functionality
|
|
75
|
+
7. Repeat until the feature is complete, committing behavioral changes separately from structural ones
|
|
76
|
+
|
|
77
|
+
Follow this process precisely, always prioritizing clean, well-tested code over quick implementation.
|
|
78
|
+
|
|
79
|
+
Always write one test at a time, make it run, then improve structure. Always run all the tests (except long-running tests) each time.
|
|
80
|
+
|
|
81
|
+
## Project Core Features
|
|
82
|
+
|
|
83
|
+
## Synapse SDK Overview
|
|
84
|
+
|
|
85
|
+
A Python SDK for building and managing ML plugins, data annotation workflows, and AI agents.
|
|
86
|
+
|
|
87
|
+
## Core Features
|
|
88
|
+
|
|
89
|
+
- **🔌 Plugin System**: Create and manage ML plugins with categories like neural networks, data validation, and export tools
|
|
90
|
+
- **🤖 Agent Management**: Backend and Ray-based agent clients for distributed AI workflows
|
|
91
|
+
- **🔄 Data Converters**: Convert between formats (COCO, Pascal VOC, YOLO) and annotation schemas
|
|
92
|
+
- **🛠️ Development Tools**: Interactive web dashboard for monitoring and debugging
|
|
93
|
+
- **⚡ CLI Interface**: Command-line tool for configuration, plugin management, and development
|
|
94
|
+
|
|
95
|
+
## 🔌 Plugin System (`synapse_sdk/plugins`)
|
|
96
|
+
|
|
97
|
+
The plugin system provides a comprehensive framework for building and managing ML plugins across different categories and execution methods.
|
|
98
|
+
|
|
99
|
+
### Plugin Categories
|
|
100
|
+
|
|
101
|
+
1. **Neural Networks** (`neural_net/`)
|
|
102
|
+
- Actions: `deployment`, `gradio`, `inference`, `test`, `train`, `tune`
|
|
103
|
+
- Base classes for inference operations
|
|
104
|
+
- Template generation for ML model plugins
|
|
105
|
+
|
|
106
|
+
2. **Export** (`export/`)
|
|
107
|
+
- Actions: `export`
|
|
108
|
+
- Data export functionality with configurable formats
|
|
109
|
+
- Template-based plugin generation
|
|
110
|
+
|
|
111
|
+
3. **Upload** (`upload/`)
|
|
112
|
+
- Actions: `upload`
|
|
113
|
+
- File and data upload capabilities
|
|
114
|
+
- Integration with various storage providers
|
|
115
|
+
|
|
116
|
+
4. **Smart Tools** (`smart_tool/`)
|
|
117
|
+
- Actions: `auto_label`
|
|
118
|
+
- Automated labeling and annotation tools
|
|
119
|
+
- AI-powered data processing
|
|
120
|
+
|
|
121
|
+
5. **Pre-annotation** (`pre_annotation/`)
|
|
122
|
+
- Actions: `pre_annotation`, `to_task`
|
|
123
|
+
- Data preparation before annotation
|
|
124
|
+
- Task conversion utilities
|
|
125
|
+
|
|
126
|
+
6. **Post-annotation** (`post_annotation/`)
|
|
127
|
+
- Actions: `post_annotation`
|
|
128
|
+
- Data processing after annotation
|
|
129
|
+
- Quality assurance and validation
|
|
130
|
+
|
|
131
|
+
7. **Data Validation** (`data_validation/`)
|
|
132
|
+
- Actions: `validation`
|
|
133
|
+
- Data quality checks and validation rules
|
|
134
|
+
- Schema validation and integrity checks
|
|
135
|
+
|
|
136
|
+
### Plugin Execution Methods
|
|
137
|
+
|
|
138
|
+
- **Job**: Ray Job-based execution for distributed processing
|
|
139
|
+
- **Task**: Ray Task-based execution for simple operations
|
|
140
|
+
- **REST API**: Ray Serve-based execution for web API endpoints
|
|
141
|
+
|
|
142
|
+
### Key Components
|
|
143
|
+
|
|
144
|
+
- **Plugin Models**: `PluginRelease` and `Run` classes for plugin lifecycle management
|
|
145
|
+
- **Action Base Class**: Unified interface for all plugin actions with validation, logging, and execution
|
|
146
|
+
- **Template System**: Cookiecutter-based plugin generation with standardized structure
|
|
147
|
+
- **Registry System**: Dynamic plugin discovery and registration
|
|
148
|
+
- **Upload System**: Automated packaging and deployment to storage backends
|
|
149
|
+
|
|
150
|
+
### Plugin Configuration
|
|
151
|
+
|
|
152
|
+
Each plugin includes:
|
|
153
|
+
|
|
154
|
+
- `config.yaml`: Plugin metadata, actions, and dependencies
|
|
155
|
+
- `plugin/`: Source code with action implementations
|
|
156
|
+
- `requirements.txt`: Python dependencies
|
|
157
|
+
- Template-based scaffolding for rapid development
|
|
158
|
+
|
|
159
|
+
## 📚 Documentation Management
|
|
160
|
+
|
|
161
|
+
The project uses **Docusaurus** for documentation with a structured approach:
|
|
162
|
+
|
|
163
|
+
### Documentation Structure
|
|
164
|
+
|
|
165
|
+
- **Implementation**: `synapse_sdk/devtools/docs/` - Docusaurus application
|
|
166
|
+
- **Content**: `docs/` - Markdown documentation files
|
|
167
|
+
- **Configuration**: `synapse_sdk/devtools/docs/docusaurus.config.ts`
|
|
168
|
+
|
|
169
|
+
### Key Directories
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
synapse_sdk/devtools/docs/ # Docusaurus implementation
|
|
173
|
+
├── package.json # Dependencies and scripts
|
|
174
|
+
├── docusaurus.config.ts # Main configuration
|
|
175
|
+
├── sidebars.ts # Navigation structure
|
|
176
|
+
├── src/ # React components and styling
|
|
177
|
+
└── static/ # Static assets (images, logos)
|
|
178
|
+
|
|
179
|
+
docs/ # Documentation content
|
|
180
|
+
├── introduction.md # Main landing page
|
|
181
|
+
├── installation.md # Setup instructions
|
|
182
|
+
├── quickstart.md # Getting started guide
|
|
183
|
+
├── api/ # API reference docs
|
|
184
|
+
├── features/ # Feature documentation
|
|
185
|
+
├── concepts/ # Core concepts
|
|
186
|
+
├── examples/ # Code examples
|
|
187
|
+
├── tutorial-basics/ # Basic tutorials
|
|
188
|
+
├── tutorial-extras/ # Advanced tutorials
|
|
189
|
+
└── i18n/ # Internationalization (Korean)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Available Commands
|
|
193
|
+
|
|
194
|
+
From `synapse_sdk/devtools/docs/`:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
# Development server
|
|
198
|
+
npm start
|
|
199
|
+
|
|
200
|
+
# Build static site
|
|
201
|
+
npm run build
|
|
202
|
+
|
|
203
|
+
# Serve built site
|
|
204
|
+
npm run serve
|
|
205
|
+
|
|
206
|
+
# Clear cache
|
|
207
|
+
npm run clear
|
|
208
|
+
|
|
209
|
+
# Type checking
|
|
210
|
+
npm run typecheck
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Documentation Workflow
|
|
214
|
+
|
|
215
|
+
1. **Content Creation**: Add/edit `.md` files in `docs/`
|
|
216
|
+
2. **Navigation**: Update `sidebars.ts` for new sections
|
|
217
|
+
3. **Testing**: Run `npm start` to preview changes
|
|
218
|
+
4. **Building**: Use `npm run build` for production builds
|
|
219
|
+
|
|
220
|
+
### Configuration Features
|
|
221
|
+
|
|
222
|
+
- **Multi-language**: English (default) and Korean support
|
|
223
|
+
- **Custom Styling**: Located in `src/css/custom.css`
|
|
224
|
+
- **GitHub Integration**: Links to repository
|
|
225
|
+
- **Search**: Built-in documentation search
|
|
226
|
+
- **Responsive Design**: Mobile-friendly navigation
|
|
227
|
+
|
|
228
|
+
### Content Guidelines
|
|
229
|
+
|
|
230
|
+
- Use frontmatter for metadata:
|
|
231
|
+
```yaml
|
|
232
|
+
---
|
|
233
|
+
id: page-id
|
|
234
|
+
title: Page Title
|
|
235
|
+
sidebar_position: 1
|
|
236
|
+
---
|
|
237
|
+
```
|
|
238
|
+
- Follow existing structure for API docs in `docs/api/`
|
|
239
|
+
- Add code examples in appropriate language blocks
|
|
240
|
+
- Include cross-references using relative paths
|
|
241
|
+
|
|
242
|
+
## 🔧 Code Formatting with Ruff
|
|
243
|
+
|
|
244
|
+
Claude Code should format all Python code changes using **Ruff** to maintain consistent code style across the project.
|
|
245
|
+
|
|
246
|
+
### When to Format Code
|
|
247
|
+
|
|
248
|
+
- **Before committing**: Always format code before creating commits
|
|
249
|
+
- **After code changes**: Format immediately after writing or modifying Python code
|
|
250
|
+
- **During code reviews**: Ensure all code follows consistent formatting standards
|
|
251
|
+
|
|
252
|
+
### Ruff Commands
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
# Format all Python files in the project
|
|
256
|
+
ruff format .
|
|
257
|
+
|
|
258
|
+
# Format specific file
|
|
259
|
+
ruff format path/to/file.py
|
|
260
|
+
|
|
261
|
+
# Check for formatting issues without applying changes
|
|
262
|
+
ruff format --check .
|
|
263
|
+
|
|
264
|
+
# Check and fix linting issues
|
|
265
|
+
ruff check --fix .
|
|
266
|
+
|
|
267
|
+
# Check linting without fixing
|
|
268
|
+
ruff check .
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Formatting Workflow
|
|
272
|
+
|
|
273
|
+
1. **Make code changes** - Write or modify Python code
|
|
274
|
+
2. **Format with Ruff** - Run `ruff format .` to apply consistent formatting
|
|
275
|
+
3. **Fix linting issues** - Run `ruff check --fix .` to resolve code quality issues
|
|
276
|
+
4. **Verify changes** - Review the formatted code to ensure it's correct
|
|
277
|
+
5. **Commit changes** - Create commits with properly formatted code
|
|
278
|
+
|
|
279
|
+
### Integration with Development
|
|
280
|
+
|
|
281
|
+
- **IDE Setup**: Configure your IDE to run Ruff on save
|
|
282
|
+
- **Pre-commit Hooks**: Use Ruff in pre-commit hooks to enforce formatting
|
|
283
|
+
- **CI/CD Pipeline**: Include Ruff checks in continuous integration
|
|
284
|
+
|
|
285
|
+
### Ruff Configuration
|
|
286
|
+
|
|
287
|
+
The project uses Ruff configuration defined in `pyproject.toml`:
|
|
288
|
+
|
|
289
|
+
- **Line length**: Follow project-specific line length settings
|
|
290
|
+
- **Import sorting**: Automatic import organization and sorting
|
|
291
|
+
- **Code style**: Consistent formatting rules across the codebase
|
|
292
|
+
- **Linting rules**: Comprehensive code quality checks
|
|
293
|
+
|
|
294
|
+
### Best Practices
|
|
295
|
+
|
|
296
|
+
- **Run before commit**: Always run `ruff format .` and `ruff check --fix .` before committing
|
|
297
|
+
- **Review changes**: Check that Ruff's changes don't alter code logic
|
|
298
|
+
- **Consistent style**: Let Ruff handle formatting so you can focus on functionality
|
|
299
|
+
- **Team consistency**: Ensures all contributors follow the same code style
|
|
300
|
+
|
|
301
|
+
## Code Review Rules
|
|
302
|
+
|
|
303
|
+
Code review rules are organized by priority level and stored in separate files for better maintainability and modularity.
|
|
304
|
+
|
|
305
|
+
### Priority Levels
|
|
306
|
+
|
|
307
|
+
- **[P1_rules.md](P1_rules.md)** - Security and Stability (Critical)
|
|
308
|
+
- **[P2_rules.md](P2_rules.md)** - Core Functionality (High)
|
|
309
|
+
- **[P3_rules.md](P3_rules.md)** - Best Practices (Medium)
|
|
310
|
+
- **[P4_rules.md](P4_rules.md)** - Code Style (Low)
|
|
311
|
+
|
|
312
|
+
### Using the Review Rules
|
|
313
|
+
|
|
314
|
+
1. **Start with P1**: Address security and stability issues first
|
|
315
|
+
2. **Progress through priorities**: P1 → P2 → P3 → P4
|
|
316
|
+
3. **Use review-pr command**: `synapse review pr` loads and displays all rules automatically
|
|
317
|
+
4. **Reference specific files**: Review individual priority files as needed
|
|
318
|
+
|
|
319
|
+
### Required Checklist Before Review
|
|
320
|
+
|
|
321
|
+
**Before submitting for review, ensure:**
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
# 1. Format all Python code
|
|
325
|
+
ruff format .
|
|
326
|
+
|
|
327
|
+
# 2. Fix linting issues
|
|
328
|
+
ruff check --fix .
|
|
329
|
+
|
|
330
|
+
# 3. Verify no remaining issues
|
|
331
|
+
ruff check .
|
|
332
|
+
|
|
333
|
+
# 4. Run all tests
|
|
334
|
+
pytest
|
|
335
|
+
|
|
336
|
+
# 5. Check test coverage
|
|
337
|
+
pytest --cov=synapse_sdk
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
**Pull Request Requirements:**
|
|
341
|
+
- [ ] Clear, descriptive title
|
|
342
|
+
- [ ] Detailed description with motivation
|
|
343
|
+
- [ ] Reference to related GitHub issues
|
|
344
|
+
- [ ] All tests pass locally
|
|
345
|
+
- [ ] Code formatted with Ruff
|
|
346
|
+
- [ ] Documentation updated for user-facing changes
|
|
347
|
+
- [ ] Changelog entry added for significant changes
|
|
348
|
+
|
|
349
|
+
### Review Process
|
|
350
|
+
|
|
351
|
+
1. **Automated Checks** - CI/CD pipeline validates formatting, linting, and tests
|
|
352
|
+
2. **P1 Review** - Focus on security and critical stability issues first
|
|
353
|
+
3. **P2 Review** - Verify functionality, architecture, and performance
|
|
354
|
+
4. **P3 Review** - Check best practices and maintainability
|
|
355
|
+
5. **P4 Review** - Final style and formatting verification
|
|
356
|
+
|
|
357
|
+
### Review Response Guidelines
|
|
358
|
+
|
|
359
|
+
- Address all reviewer comments
|
|
360
|
+
- Ask for clarification if feedback is unclear
|
|
361
|
+
- Make requested changes promptly
|
|
362
|
+
- Re-run formatting and tests after changes
|
|
363
|
+
- Update documentation as needed
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
See [AGENT.md](AGENT.md).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
See [AGENT.md](AGENT.md).
|
|
@@ -51,4 +51,14 @@ clean:
|
|
|
51
51
|
rm -rf htmlcov/
|
|
52
52
|
rm -rf .ruff_cache/
|
|
53
53
|
find . -type d -name __pycache__ -exec rm -rf {} +
|
|
54
|
-
find . -name "*.pyc" -delete
|
|
54
|
+
find . -name "*.pyc" -delete
|
|
55
|
+
|
|
56
|
+
# Docusaurus Commands
|
|
57
|
+
|
|
58
|
+
run-docs:
|
|
59
|
+
cd synapse_sdk/devtools/docs && \
|
|
60
|
+
npx docusaurus start --host 0.0.0.0 --port 3330
|
|
61
|
+
|
|
62
|
+
init-docs:
|
|
63
|
+
cd synapse_sdk/devtools/docs && \
|
|
64
|
+
npm install
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# P1 Code Review Rules - Security and Stability (Critical)
|
|
2
|
+
|
|
3
|
+
**Priority Level:** P1 (Critical)
|
|
4
|
+
**Focus:** Security and Stability
|
|
5
|
+
|
|
6
|
+
## 1. Security Vulnerabilities
|
|
7
|
+
|
|
8
|
+
- No hardcoded secrets, API keys, or passwords
|
|
9
|
+
- No SQL injection vulnerabilities
|
|
10
|
+
- No exposed sensitive data in logs or error messages
|
|
11
|
+
- Proper input validation and sanitization
|
|
12
|
+
- Secure handling of user data and authentication
|
|
13
|
+
|
|
14
|
+
## 2. Critical Stability Issues
|
|
15
|
+
|
|
16
|
+
- No infinite loops or potential deadlocks
|
|
17
|
+
- Proper error handling for all external dependencies
|
|
18
|
+
- Memory leak prevention
|
|
19
|
+
- Thread safety in concurrent code
|
|
20
|
+
- Graceful handling of resource exhaustion
|
|
21
|
+
|
|
22
|
+
## 3. Data Integrity
|
|
23
|
+
|
|
24
|
+
- No data corruption risks
|
|
25
|
+
- Proper transaction management
|
|
26
|
+
- Backup and recovery considerations
|
|
27
|
+
- Data validation before persistence
|
|
28
|
+
|
|
29
|
+
## Review Guidelines
|
|
30
|
+
|
|
31
|
+
**STOP THE REVIEW** if any P1 issues are found. These must be fixed before proceeding with other review priorities.
|
|
32
|
+
|
|
33
|
+
**Security Checklist:**
|
|
34
|
+
- [ ] No hardcoded credentials or secrets
|
|
35
|
+
- [ ] Input validation implemented
|
|
36
|
+
- [ ] Authentication/authorization properly handled
|
|
37
|
+
- [ ] Sensitive data not exposed in logs
|
|
38
|
+
- [ ] No obvious injection vulnerabilities
|
|
39
|
+
|
|
40
|
+
**Stability Checklist:**
|
|
41
|
+
- [ ] No infinite loops or deadlock potential
|
|
42
|
+
- [ ] External dependencies have proper error handling
|
|
43
|
+
- [ ] Memory management is appropriate
|
|
44
|
+
- [ ] Concurrent code is thread-safe
|
|
45
|
+
- [ ] Resource exhaustion scenarios handled
|
|
46
|
+
|
|
47
|
+
**Data Integrity Checklist:**
|
|
48
|
+
- [ ] Data validation before persistence
|
|
49
|
+
- [ ] Transaction boundaries are correct
|
|
50
|
+
- [ ] No data corruption risks
|
|
51
|
+
- [ ] Backup/recovery considerations addressed
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# P2 Code Review Rules - Core Functionality (High)
|
|
2
|
+
|
|
3
|
+
**Priority Level:** P2 (High)
|
|
4
|
+
**Focus:** Core functionality and architecture
|
|
5
|
+
|
|
6
|
+
## 1. Functional Correctness
|
|
7
|
+
|
|
8
|
+
- Code works as intended and meets requirements
|
|
9
|
+
- All edge cases are handled properly
|
|
10
|
+
- Business logic is implemented correctly
|
|
11
|
+
- Integration with existing systems is correct
|
|
12
|
+
|
|
13
|
+
## 2. Testing Requirements
|
|
14
|
+
|
|
15
|
+
- All new functionality has comprehensive tests
|
|
16
|
+
- Tests pass locally and in CI/CD pipeline
|
|
17
|
+
- Test coverage meets project standards (aim for >90%)
|
|
18
|
+
- Both positive and negative test cases included
|
|
19
|
+
- Mock external dependencies appropriately
|
|
20
|
+
|
|
21
|
+
## 3. Architecture and Design
|
|
22
|
+
|
|
23
|
+
- Follows established architectural patterns
|
|
24
|
+
- Proper separation of concerns
|
|
25
|
+
- Dependencies are managed correctly
|
|
26
|
+
- APIs are well-designed and consistent
|
|
27
|
+
- Plugin system integration follows standards
|
|
28
|
+
|
|
29
|
+
## 4. Performance
|
|
30
|
+
|
|
31
|
+
- No obvious performance bottlenecks
|
|
32
|
+
- Efficient algorithms and data structures
|
|
33
|
+
- Database queries are optimized
|
|
34
|
+
- Memory usage is reasonable
|
|
35
|
+
- Response times meet requirements
|
|
36
|
+
|
|
37
|
+
## Review Guidelines
|
|
38
|
+
|
|
39
|
+
**Functional Correctness Checklist:**
|
|
40
|
+
- [ ] Code implements requirements correctly
|
|
41
|
+
- [ ] Edge cases are handled
|
|
42
|
+
- [ ] Business logic is sound
|
|
43
|
+
- [ ] Integration points work properly
|
|
44
|
+
- [ ] Error scenarios are covered
|
|
45
|
+
|
|
46
|
+
**Testing Checklist:**
|
|
47
|
+
- [ ] New functionality has tests
|
|
48
|
+
- [ ] Tests pass locally and in CI
|
|
49
|
+
- [ ] Test coverage is adequate (>90%)
|
|
50
|
+
- [ ] Both success and failure cases tested
|
|
51
|
+
- [ ] External dependencies are mocked
|
|
52
|
+
|
|
53
|
+
**Architecture Checklist:**
|
|
54
|
+
- [ ] Follows established patterns
|
|
55
|
+
- [ ] Proper separation of concerns
|
|
56
|
+
- [ ] Dependencies well-managed
|
|
57
|
+
- [ ] APIs are consistent
|
|
58
|
+
- [ ] Plugin integration follows standards
|
|
59
|
+
|
|
60
|
+
**Performance Checklist:**
|
|
61
|
+
- [ ] No obvious bottlenecks
|
|
62
|
+
- [ ] Algorithms are efficient
|
|
63
|
+
- [ ] Database queries optimized
|
|
64
|
+
- [ ] Memory usage reasonable
|
|
65
|
+
- [ ] Response times acceptable
|