@hybridlabor-api/aos 4.4.1 → 4.4.2-beta.0
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.
- package/.agents/skills/firecrawl/SKILL.md +149 -0
- package/.agents/skills/firecrawl/rules/install.md +82 -0
- package/.agents/skills/firecrawl/rules/security.md +26 -0
- package/.agents/skills/firecrawl-agent/SKILL.md +58 -0
- package/.agents/skills/firecrawl-build/SKILL.md +39 -0
- package/.agents/skills/firecrawl-build-interact/SKILL.md +68 -0
- package/.agents/skills/firecrawl-build-onboarding/SKILL.md +103 -0
- package/.agents/skills/firecrawl-build-onboarding/references/auth-flow.md +39 -0
- package/.agents/skills/firecrawl-build-onboarding/references/project-setup.md +20 -0
- package/.agents/skills/firecrawl-build-onboarding/references/sdk-installation.md +17 -0
- package/.agents/skills/firecrawl-build-scrape/SKILL.md +69 -0
- package/.agents/skills/firecrawl-build-search/SKILL.md +69 -0
- package/.agents/skills/firecrawl-crawl/SKILL.md +59 -0
- package/.agents/skills/firecrawl-download/SKILL.md +70 -0
- package/.agents/skills/firecrawl-interact/SKILL.md +84 -0
- package/.agents/skills/firecrawl-map/SKILL.md +51 -0
- package/.agents/skills/firecrawl-scrape/SKILL.md +69 -0
- package/.agents/skills/firecrawl-search/SKILL.md +60 -0
- package/CLAUDE.md +573 -0
- package/README.de.md +0 -8
- package/README.md +0 -8
- package/README.pt.md +0 -8
- package/assets/brand/ao-ant-mark.svg +91 -0
- package/assets/brand/bdb-core-mark.svg +34 -0
- package/assets/brand/heimdall-guardian-mark.svg +16 -0
- package/assets/brand/memb-crystal-mark.svg +18 -0
- package/bin/aos-config.mjs +89 -0
- package/bin/aos-dashboard.mjs +608 -0
- package/bin/aos-uninstall.mjs +227 -0
- package/docs/sessions/audit-2026-09-14-silent-failures.md +114 -0
- package/docs/skills_table.md +0 -3
- package/installer.js +387 -237
- package/mcps/RhinoMCP/cc-plugin/.claude/settings.json +10 -0
- package/mcps/after-effects-mcp/build/index.js +840 -0
- package/mcps/after-effects-mcp/build/scripts/applyEffect.jsx +153 -0
- package/mcps/after-effects-mcp/build/scripts/applyEffectTemplate.jsx +218 -0
- package/mcps/after-effects-mcp/build/scripts/createComposition.jsx +71 -0
- package/mcps/after-effects-mcp/build/scripts/createShapeLayer.jsx +147 -0
- package/mcps/after-effects-mcp/build/scripts/createSolidLayer.jsx +114 -0
- package/mcps/after-effects-mcp/build/scripts/createTextLayer.jsx +115 -0
- package/mcps/after-effects-mcp/build/scripts/getLayerInfo.jsx +192 -0
- package/mcps/after-effects-mcp/build/scripts/getProjectInfo.jsx +90 -0
- package/mcps/after-effects-mcp/build/scripts/listCompositions.jsx +50 -0
- package/mcps/after-effects-mcp/build/scripts/mcp-bridge-auto.jsx +1773 -0
- package/mcps/after-effects-mcp/build/scripts/setLayerProperties.jsx +160 -0
- package/mcps/computer-use-mcp/dist/client.d.ts +150 -0
- package/mcps/computer-use-mcp/dist/client.js +136 -0
- package/mcps/computer-use-mcp/dist/entrypoint.d.ts +16 -0
- package/mcps/computer-use-mcp/dist/entrypoint.js +26 -0
- package/mcps/computer-use-mcp/dist/native.d.ts +212 -0
- package/mcps/computer-use-mcp/dist/native.js +50 -0
- package/mcps/computer-use-mcp/dist/server.d.ts +32 -0
- package/mcps/computer-use-mcp/dist/server.js +342 -0
- package/mcps/computer-use-mcp/dist/session.d.ts +101 -0
- package/mcps/computer-use-mcp/dist/session.js +2372 -0
- package/package.json +13 -4
- package/skills/global_config/aos-project-init/SKILL.md +97 -130
- package/skills/global_config/aos-project-init/assets/openwikiignore.template +62 -0
- package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +38 -1
- package/skills/global_config/aos-setup/SKILL.md +98 -8
- package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +21 -2
- package/skills/global_config/ask-tim/SKILL.md +2 -7
- package/skills/global_config/openwiki-skill/scripts/openwiki_daemon.py +65 -12
- package/bin/setup-saas.mjs +0 -792
- package/mcps/blender-mcp-server/.dockerignore +0 -19
- package/mcps/blender-mcp-server/.github/workflows/ci.yml +0 -67
- package/mcps/blender-mcp-server/.github/workflows/publish-pypi.yml +0 -54
- package/mcps/blender-mcp-server/CHANGELOG.md +0 -64
- package/mcps/blender-mcp-server/CONTRIBUTING.md +0 -107
- package/mcps/blender-mcp-server/Dockerfile +0 -19
- package/mcps/blender-mcp-server/LICENSE +0 -21
- package/mcps/blender-mcp-server/README.md +0 -409
- package/mcps/blender-mcp-server/addon/__init__.py +0 -1440
- package/mcps/blender-mcp-server/addon/models.py +0 -223
- package/mcps/blender-mcp-server/pyproject.toml +0 -120
- package/mcps/blender-mcp-server/scripts/blender_bridge_request.py +0 -71
- package/mcps/blender-mcp-server/scripts/blender_create_test_cube.py +0 -49
- package/mcps/blender-mcp-server/scripts/blender_scene_info.py +0 -38
- package/mcps/blender-mcp-server/scripts/build_addon_zip.sh +0 -29
- package/mcps/blender-mcp-server/scripts/demos/README.md +0 -186
- package/mcps/blender-mcp-server/scripts/demos/dam_break_scene.py +0 -276
- package/mcps/blender-mcp-server/scripts/demos/open_dam_break_gui.py +0 -33
- package/mcps/blender-mcp-server/scripts/demos/pipe_movement_study.py +0 -518
- package/mcps/blender-mcp-server/scripts/demos/pipe_pressure_failure_scene.py +0 -806
- package/mcps/blender-mcp-server/scripts/demos/procedural_dam_break_scene.py +0 -600
- package/mcps/blender-mcp-server/scripts/demos/run_dam_break.py +0 -510
- package/mcps/blender-mcp-server/scripts/launch_blender_gui.py +0 -41
- package/mcps/blender-mcp-server/scripts/library/README.md +0 -64
- package/mcps/blender-mcp-server/scripts/library/apply_transforms.py +0 -46
- package/mcps/blender-mcp-server/scripts/library/camera.py +0 -51
- package/mcps/blender-mcp-server/scripts/library/collections.py +0 -65
- package/mcps/blender-mcp-server/scripts/library/create_mesh.py +0 -41
- package/mcps/blender-mcp-server/scripts/library/effector.py +0 -48
- package/mcps/blender-mcp-server/scripts/library/fluid_domain.py +0 -80
- package/mcps/blender-mcp-server/scripts/library/fluid_inflow.py +0 -98
- package/mcps/blender-mcp-server/scripts/library/frame_range.py +0 -35
- package/mcps/blender-mcp-server/scripts/library/keyframes.py +0 -59
- package/mcps/blender-mcp-server/scripts/library/rigid_body.py +0 -52
- package/mcps/blender-mcp-server/scripts/library/save_blend.py +0 -40
- package/mcps/blender-mcp-server/scripts/server_start.sh +0 -26
- package/mcps/blender-mcp-server/src/blender_mcp_server/__init__.py +0 -3
- package/mcps/blender-mcp-server/src/blender_mcp_server/headless.py +0 -330
- package/mcps/blender-mcp-server/src/blender_mcp_server/server.py +0 -606
- package/mcps/davinci-mcp-professional/.bandit +0 -35
- package/mcps/davinci-mcp-professional/.claude/commands/security-review.md +0 -191
- package/mcps/davinci-mcp-professional/.claude/settings.json +0 -1
- package/mcps/davinci-mcp-professional/.editorconfig +0 -27
- package/mcps/davinci-mcp-professional/.gitattributes +0 -207
- package/mcps/davinci-mcp-professional/.github/CODEOWNERS +0 -2
- package/mcps/davinci-mcp-professional/.github/ISSUE_TEMPLATE/bug_report.md +0 -33
- package/mcps/davinci-mcp-professional/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
- package/mcps/davinci-mcp-professional/.github/PULL_REQUEST_TEMPLATE.md +0 -20
- package/mcps/davinci-mcp-professional/.github/SECURITY.md +0 -97
- package/mcps/davinci-mcp-professional/.github/dependabot.yml +0 -27
- package/mcps/davinci-mcp-professional/.github/workflows/ci.yml +0 -39
- package/mcps/davinci-mcp-professional/ATTRIBUTION.md +0 -4
- package/mcps/davinci-mcp-professional/AUTHORS.md +0 -9
- package/mcps/davinci-mcp-professional/BUGS.md +0 -55
- package/mcps/davinci-mcp-professional/CLAUDE.md +0 -229
- package/mcps/davinci-mcp-professional/CONTRIBUTING.md +0 -51
- package/mcps/davinci-mcp-professional/COPYING.md +0 -228
- package/mcps/davinci-mcp-professional/Doxyfile +0 -379
- package/mcps/davinci-mcp-professional/README.md +0 -143
- package/mcps/davinci-mcp-professional/SECURITY.md +0 -40
- package/mcps/davinci-mcp-professional/USING.md +0 -301
- package/mcps/davinci-mcp-professional/VERSION.md +0 -13
- package/mcps/davinci-mcp-professional/build.py +0 -169
- package/mcps/davinci-mcp-professional/claude_desktop_config_template.json +0 -11
- package/mcps/davinci-mcp-professional/hooks/ci-check.sh +0 -29
- package/mcps/davinci-mcp-professional/hooks/pre-push +0 -46
- package/mcps/davinci-mcp-professional/main.py +0 -40
- package/mcps/davinci-mcp-professional/mcp_server.py +0 -30
- package/mcps/davinci-mcp-professional/pyproject.toml +0 -115
- package/mcps/davinci-mcp-professional/security_audit.py +0 -379
- package/mcps/davinci-mcp-professional/src/davinci_mcp/__init__.py +0 -19
- package/mcps/davinci-mcp-professional/src/davinci_mcp/cli.py +0 -138
- package/mcps/davinci-mcp-professional/src/davinci_mcp/resolve_client.py +0 -342
- package/mcps/davinci-mcp-professional/src/davinci_mcp/resources/__init__.py +0 -60
- package/mcps/davinci-mcp-professional/src/davinci_mcp/server.py +0 -185
- package/mcps/davinci-mcp-professional/src/davinci_mcp/tools/__init__.py +0 -146
- package/mcps/davinci-mcp-professional/src/davinci_mcp/types.py +0 -125
- package/mcps/davinci-mcp-professional/src/davinci_mcp/utils/__init__.py +0 -19
- package/mcps/davinci-mcp-professional/src/davinci_mcp/utils/platform.py +0 -239
- package/mcps/davinci-mcp-professional/test.py +0 -186
- package/mcps/davinci-mcp-professional/uv.lock +0 -2073
- package/mcps/davinci-resolve-mcp/.claude/skills/media-analysis.md +0 -44
- package/mcps/davinci-resolve-mcp/.clinerules +0 -17
- package/mcps/davinci-resolve-mcp/.cursorrules +0 -17
- package/mcps/davinci-resolve-mcp/.github/copilot-instructions.md +0 -17
- package/mcps/davinci-resolve-mcp/.github/workflows/npm-publish.yml +0 -109
- package/mcps/davinci-resolve-mcp/.windsurfrules +0 -17
- package/mcps/davinci-resolve-mcp/AGENTS.md +0 -114
- package/mcps/davinci-resolve-mcp/CHANGELOG.md +0 -2648
- package/mcps/davinci-resolve-mcp/CLAUDE.md +0 -15
- package/mcps/davinci-resolve-mcp/LICENSE +0 -21
- package/mcps/davinci-resolve-mcp/README.md +0 -173
- package/mcps/davinci-resolve-mcp/SECURITY.md +0 -53
- package/mcps/davinci-resolve-mcp/bin/davinci-resolve-mcp.mjs +0 -450
- package/mcps/davinci-resolve-mcp/examples/README.md +0 -53
- package/mcps/davinci-resolve-mcp/examples/markers/README.md +0 -81
- package/mcps/davinci-resolve-mcp/examples/media/README.md +0 -94
- package/mcps/davinci-resolve-mcp/examples/timeline/README.md +0 -98
- package/mcps/davinci-resolve-mcp/install.py +0 -1687
- package/mcps/davinci-resolve-mcp/package.json +0 -52
- package/mcps/davinci-resolve-mcp/release-notes/v2.22.0.md +0 -51
- package/mcps/davinci-resolve-mcp/release-notes/v2.23.0.md +0 -51
- package/mcps/davinci-resolve-mcp/release-notes/v2.23.1.md +0 -35
- package/mcps/davinci-resolve-mcp/release-notes/v2.24.1.md +0 -32
- package/mcps/davinci-resolve-mcp/scripts/audit_api_parity.py +0 -275
- package/mcps/davinci-resolve-mcp/scripts/audit_readwrite_symmetry.py +0 -80
- package/mcps/davinci-resolve-mcp/scripts/doctor.py +0 -227
- package/mcps/davinci-resolve-mcp/scripts/gen_api_limitations.py +0 -144
- package/mcps/davinci-resolve-mcp/scripts/live_media_analysis_polish_probe.py +0 -65
- package/mcps/davinci-resolve-mcp/scripts/measure_bridge_cost.py +0 -65
- package/mcps/davinci-resolve-mcp/scripts/regen_panel_screenshots.py +0 -76
- package/mcps/davinci-resolve-mcp/src/__init__.py +0 -3
- package/mcps/davinci-resolve-mcp/src/analysis_dashboard.py +0 -15505
- package/mcps/davinci-resolve-mcp/src/batch_cli.py +0 -540
- package/mcps/davinci-resolve-mcp/src/control_panel.py +0 -13
- package/mcps/davinci-resolve-mcp/src/granular/__init__.py +0 -17
- package/mcps/davinci-resolve-mcp/src/granular/common.py +0 -741
- package/mcps/davinci-resolve-mcp/src/granular/folder.py +0 -420
- package/mcps/davinci-resolve-mcp/src/granular/gallery.py +0 -306
- package/mcps/davinci-resolve-mcp/src/granular/graph.py +0 -309
- package/mcps/davinci-resolve-mcp/src/granular/media_pool.py +0 -679
- package/mcps/davinci-resolve-mcp/src/granular/media_pool_item.py +0 -1020
- package/mcps/davinci-resolve-mcp/src/granular/media_storage.py +0 -179
- package/mcps/davinci-resolve-mcp/src/granular/project.py +0 -1654
- package/mcps/davinci-resolve-mcp/src/granular/resolve_control.py +0 -538
- package/mcps/davinci-resolve-mcp/src/granular/timeline.py +0 -1075
- package/mcps/davinci-resolve-mcp/src/granular/timeline_item.py +0 -2251
- package/mcps/davinci-resolve-mcp/src/resolve_mcp_server.py +0 -43
- package/mcps/davinci-resolve-mcp/src/server.py +0 -24116
- package/mcps/davinci-resolve-mcp/src/utils/__init__.py +0 -3
- package/mcps/davinci-resolve-mcp/src/utils/actor_identity.py +0 -46
- package/mcps/davinci-resolve-mcp/src/utils/analysis_caps.py +0 -678
- package/mcps/davinci-resolve-mcp/src/utils/analysis_memory.py +0 -755
- package/mcps/davinci-resolve-mcp/src/utils/analysis_runs.py +0 -307
- package/mcps/davinci-resolve-mcp/src/utils/analysis_store.py +0 -945
- package/mcps/davinci-resolve-mcp/src/utils/api_truth.py +0 -525
- package/mcps/davinci-resolve-mcp/src/utils/app_control.py +0 -319
- package/mcps/davinci-resolve-mcp/src/utils/audio_fairlight_live_probe.py +0 -263
- package/mcps/davinci-resolve-mcp/src/utils/brain_edits.py +0 -387
- package/mcps/davinci-resolve-mcp/src/utils/bridge_metrics.py +0 -76
- package/mcps/davinci-resolve-mcp/src/utils/cdl.py +0 -20
- package/mcps/davinci-resolve-mcp/src/utils/clip_query.py +0 -85
- package/mcps/davinci-resolve-mcp/src/utils/cloud_operations.py +0 -192
- package/mcps/davinci-resolve-mcp/src/utils/color_grade_live_probe.py +0 -444
- package/mcps/davinci-resolve-mcp/src/utils/contracts.py +0 -102
- package/mcps/davinci-resolve-mcp/src/utils/cut_ir.py +0 -115
- package/mcps/davinci-resolve-mcp/src/utils/dctl_templates.py +0 -368
- package/mcps/davinci-resolve-mcp/src/utils/deep_vision.py +0 -643
- package/mcps/davinci-resolve-mcp/src/utils/destructive_hook.py +0 -606
- package/mcps/davinci-resolve-mcp/src/utils/edit_engine.py +0 -737
- package/mcps/davinci-resolve-mcp/src/utils/embeddings.py +0 -922
- package/mcps/davinci-resolve-mcp/src/utils/entities.py +0 -579
- package/mcps/davinci-resolve-mcp/src/utils/extension_authoring_live_probe.py +0 -292
- package/mcps/davinci-resolve-mcp/src/utils/failure_tracker.py +0 -119
- package/mcps/davinci-resolve-mcp/src/utils/fuse_templates.py +0 -1968
- package/mcps/davinci-resolve-mcp/src/utils/fusion_composition_live_probe.py +0 -284
- package/mcps/davinci-resolve-mcp/src/utils/fusion_group_settings.py +0 -334
- package/mcps/davinci-resolve-mcp/src/utils/layout_presets.py +0 -333
- package/mcps/davinci-resolve-mcp/src/utils/mcp_stdio.py +0 -32
- package/mcps/davinci-resolve-mcp/src/utils/mcp_transport.py +0 -128
- package/mcps/davinci-resolve-mcp/src/utils/media_analysis.py +0 -7690
- package/mcps/davinci-resolve-mcp/src/utils/media_analysis_jobs.py +0 -805
- package/mcps/davinci-resolve-mcp/src/utils/media_pool_changes.py +0 -121
- package/mcps/davinci-resolve-mcp/src/utils/media_pool_ingest_live_probe.py +0 -592
- package/mcps/davinci-resolve-mcp/src/utils/multicam.py +0 -393
- package/mcps/davinci-resolve-mcp/src/utils/object_inspection.py +0 -301
- package/mcps/davinci-resolve-mcp/src/utils/page_lock.py +0 -75
- package/mcps/davinci-resolve-mcp/src/utils/platform.py +0 -157
- package/mcps/davinci-resolve-mcp/src/utils/proc.py +0 -26
- package/mcps/davinci-resolve-mcp/src/utils/project_cleanup.py +0 -73
- package/mcps/davinci-resolve-mcp/src/utils/project_lifecycle_live_probe.py +0 -376
- package/mcps/davinci-resolve-mcp/src/utils/project_lint.py +0 -131
- package/mcps/davinci-resolve-mcp/src/utils/project_properties.py +0 -601
- package/mcps/davinci-resolve-mcp/src/utils/project_spec.py +0 -459
- package/mcps/davinci-resolve-mcp/src/utils/readback.py +0 -91
- package/mcps/davinci-resolve-mcp/src/utils/render_deliver_live_probe.py +0 -384
- package/mcps/davinci-resolve-mcp/src/utils/resolve_ai_governance.py +0 -214
- package/mcps/davinci-resolve-mcp/src/utils/resolve_ai_ledger.py +0 -244
- package/mcps/davinci-resolve-mcp/src/utils/resolve_busy.py +0 -171
- package/mcps/davinci-resolve-mcp/src/utils/resolve_connection.py +0 -77
- package/mcps/davinci-resolve-mcp/src/utils/review_annotation_live_probe.py +0 -352
- package/mcps/davinci-resolve-mcp/src/utils/script_templates.py +0 -1193
- package/mcps/davinci-resolve-mcp/src/utils/shot_relationships.py +0 -544
- package/mcps/davinci-resolve-mcp/src/utils/structural_diff.py +0 -175
- package/mcps/davinci-resolve-mcp/src/utils/sync_detection.py +0 -889
- package/mcps/davinci-resolve-mcp/src/utils/timeline_brain_db.py +0 -826
- package/mcps/davinci-resolve-mcp/src/utils/timeline_conform_live_probe.py +0 -280
- package/mcps/davinci-resolve-mcp/src/utils/timeline_kernel_live_probe.py +0 -1092
- package/mcps/davinci-resolve-mcp/src/utils/timeline_kernel_probe.py +0 -185
- package/mcps/davinci-resolve-mcp/src/utils/timeline_title_text.py +0 -87
- package/mcps/davinci-resolve-mcp/src/utils/timeline_versioning.py +0 -730
- package/mcps/davinci-resolve-mcp/src/utils/update_check.py +0 -685
- package/mcps/vectorworks-mcp/.dockerignore +0 -8
- package/mcps/vectorworks-mcp/Dockerfile +0 -28
- package/mcps/vectorworks-mcp/README.md +0 -156
- package/mcps/vectorworks-mcp/app/__init__.py +0 -2
- package/mcps/vectorworks-mcp/app/api.py +0 -52
- package/mcps/vectorworks-mcp/app/chunking.py +0 -56
- package/mcps/vectorworks-mcp/app/config.py +0 -29
- package/mcps/vectorworks-mcp/app/embeddings.py +0 -28
- package/mcps/vectorworks-mcp/app/indexer.py +0 -106
- package/mcps/vectorworks-mcp/app/main.py +0 -33
- package/mcps/vectorworks-mcp/app/mcp_server.py +0 -71
- package/mcps/vectorworks-mcp/app/search.py +0 -54
- package/mcps/vectorworks-mcp/app/utils.py +0 -14
- package/mcps/vectorworks-mcp/data/.gitkeep +0 -1
- package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_PluginScript.htm +0 -95
- package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_ScriptEditor.htm +0 -266
- package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_Scripting.htm +0 -106
- package/mcps/vectorworks-mcp/data/vw-app-help/VW2023_CreatingScriptedPlugins.htm +0 -327
- package/mcps/vectorworks-mcp/data/vw-app-help/VW2024_RunningScripts.htm +0 -116
- package/mcps/vectorworks-mcp/data/vw-devwiki/VS_Function_Reference_category.html +0 -2129
- package/mcps/vectorworks-mcp/data/vw-jp-ref/ObjectsSymbols.html +0 -2035
- package/mcps/vectorworks-mcp/data/vw-jp-ref/ScriptFunctionReference.html +0 -29
- package/mcps/vectorworks-mcp/design.md +0 -57
- package/mcps/vectorworks-mcp/docker-compose.yml +0 -18
- package/mcps/vectorworks-mcp/index/.gitkeep +0 -1
- package/mcps/vectorworks-mcp/index/meta.jsonl +0 -3956
- package/mcps/vectorworks-mcp/index/vw.faiss +0 -0
- package/mcps/vectorworks-mcp/requirements.txt +0 -10
- package/mcps/vectorworks-mcp/scripts/fetch_docs_minimal.sh +0 -84
- package/mcps/vectorworks-mcp/scripts/fetch_github_vectorworks.sh +0 -85
- package/mcps/vectorworks-mcp/templates/index.html +0 -40
- package/scripts/ecosystem-health-audit.js +0 -257
- package/skills/bdb-dev-os-skill/SKILL.md +0 -49
- package/skills/bdb-dev-os-skill/package.json +0 -11
- package/skills/bdbsaastraining/SKILL.md +0 -316
- package/skills/bdbsaastraining/references/exam-pool.md +0 -313
- package/skills/bdbsaastraining/references/interaction-modes.md +0 -94
- package/skills/bdbsaastraining/references/track-a-ai-agent.md +0 -111
- package/skills/bdbsaastraining/references/track-b-wordpress.md +0 -111
- package/skills/bdbsaastraining/references/track-c-mailserver.md +0 -107
- package/skills/bdbsaastraining/references/track-d-debian.md +0 -109
- package/skills/bdbsaastraining/references/track-e-custom.md +0 -83
- package/skills/bdbsaastraining/scripts/build_profile.py +0 -529
- package/skills/bdbsaastraining/scripts/generate_certificate.py +0 -161
- package/skills/bdbsaastraining/scripts/preflight_check.sh +0 -150
- package/skills/bdbsaastraining/templates/certificate_template.html +0 -508
- package/skills/global_config/bdb-ecosystem-health/SKILL.md +0 -68
- package/skills/global_config/bdbsaas-ops/SKILL.md +0 -16
- package/skills/global_config/bdbsaashost/SKILL.md +0 -125
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
workflow_call:
|
|
5
|
-
push:
|
|
6
|
-
branches: [main]
|
|
7
|
-
pull_request:
|
|
8
|
-
branches: [main]
|
|
9
|
-
|
|
10
|
-
permissions:
|
|
11
|
-
contents: read
|
|
12
|
-
|
|
13
|
-
jobs:
|
|
14
|
-
lint:
|
|
15
|
-
runs-on: ubuntu-latest
|
|
16
|
-
steps:
|
|
17
|
-
- uses: actions/checkout@v4
|
|
18
|
-
- uses: actions/setup-python@v5
|
|
19
|
-
with:
|
|
20
|
-
python-version: "3.12"
|
|
21
|
-
- name: Install dependencies
|
|
22
|
-
run: pip install -e ".[dev]"
|
|
23
|
-
- name: Ruff check
|
|
24
|
-
run: ruff check src/ addon/ tests/ scripts/ --exclude scripts/.venv
|
|
25
|
-
- name: Ruff format check
|
|
26
|
-
run: ruff format --check src/ addon/ tests/ scripts/ --exclude scripts/.venv
|
|
27
|
-
- name: Mypy
|
|
28
|
-
run: mypy src/ addon/
|
|
29
|
-
|
|
30
|
-
test:
|
|
31
|
-
runs-on: ubuntu-latest
|
|
32
|
-
strategy:
|
|
33
|
-
matrix:
|
|
34
|
-
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
35
|
-
steps:
|
|
36
|
-
- uses: actions/checkout@v4
|
|
37
|
-
- uses: actions/setup-python@v5
|
|
38
|
-
with:
|
|
39
|
-
python-version: ${{ matrix.python-version }}
|
|
40
|
-
- name: Install dependencies
|
|
41
|
-
run: pip install -e ".[dev]"
|
|
42
|
-
- name: Run tests with coverage
|
|
43
|
-
run: pytest tests/test_server.py -v
|
|
44
|
-
- name: Upload coverage
|
|
45
|
-
if: matrix.python-version == '3.12'
|
|
46
|
-
uses: actions/upload-artifact@v4
|
|
47
|
-
with:
|
|
48
|
-
name: coverage-report
|
|
49
|
-
path: coverage.xml
|
|
50
|
-
|
|
51
|
-
build:
|
|
52
|
-
needs: [lint, test]
|
|
53
|
-
runs-on: ubuntu-latest
|
|
54
|
-
steps:
|
|
55
|
-
- uses: actions/checkout@v4
|
|
56
|
-
- uses: actions/setup-python@v5
|
|
57
|
-
with:
|
|
58
|
-
python-version: "3.12"
|
|
59
|
-
- name: Build distributions
|
|
60
|
-
run: |
|
|
61
|
-
pip install build
|
|
62
|
-
python -m build
|
|
63
|
-
- name: Upload distributions
|
|
64
|
-
uses: actions/upload-artifact@v4
|
|
65
|
-
with:
|
|
66
|
-
name: python-package-distributions
|
|
67
|
-
path: dist/
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
name: Publish to PyPI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- "v*"
|
|
7
|
-
release:
|
|
8
|
-
types: [published]
|
|
9
|
-
workflow_dispatch:
|
|
10
|
-
|
|
11
|
-
permissions:
|
|
12
|
-
contents: read
|
|
13
|
-
id-token: write
|
|
14
|
-
|
|
15
|
-
jobs:
|
|
16
|
-
ci:
|
|
17
|
-
uses: ./.github/workflows/ci.yml
|
|
18
|
-
permissions:
|
|
19
|
-
contents: read
|
|
20
|
-
|
|
21
|
-
build:
|
|
22
|
-
needs: [ci]
|
|
23
|
-
runs-on: ubuntu-latest
|
|
24
|
-
steps:
|
|
25
|
-
- uses: actions/checkout@v4
|
|
26
|
-
- uses: actions/setup-python@v5
|
|
27
|
-
with:
|
|
28
|
-
python-version: '3.x'
|
|
29
|
-
- name: Build distributions
|
|
30
|
-
run: |
|
|
31
|
-
python -m pip install --upgrade pip
|
|
32
|
-
pip install build
|
|
33
|
-
python -m build
|
|
34
|
-
- name: Upload distributions
|
|
35
|
-
uses: actions/upload-artifact@v4
|
|
36
|
-
with:
|
|
37
|
-
name: python-package-distributions
|
|
38
|
-
path: dist/
|
|
39
|
-
|
|
40
|
-
publish-to-pypi:
|
|
41
|
-
needs: [build]
|
|
42
|
-
runs-on: ubuntu-latest
|
|
43
|
-
environment:
|
|
44
|
-
name: pypi
|
|
45
|
-
permissions:
|
|
46
|
-
id-token: write
|
|
47
|
-
steps:
|
|
48
|
-
- name: Download distributions
|
|
49
|
-
uses: actions/download-artifact@v4
|
|
50
|
-
with:
|
|
51
|
-
name: python-package-distributions
|
|
52
|
-
path: dist/
|
|
53
|
-
- name: Publish package distributions to PyPI
|
|
54
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/),
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
7
|
-
|
|
8
|
-
## [Unreleased]
|
|
9
|
-
|
|
10
|
-
## [0.1.3] — 2026-06-21
|
|
11
|
-
|
|
12
|
-
### Fixed
|
|
13
|
-
- Packaged `models.py` in the Blender add-on zip.
|
|
14
|
-
- Removed the Blender add-on's runtime dependency on third-party validation packages.
|
|
15
|
-
- Switched the add-on model import to package-relative import for installed zip compatibility.
|
|
16
|
-
|
|
17
|
-
## [0.1.2] — 2026-06-21
|
|
18
|
-
|
|
19
|
-
### Added
|
|
20
|
-
- CI pipeline (`ci.yml`): ruff lint, ruff format, mypy, pytest with coverage across Python 3.10–3.13.
|
|
21
|
-
- Publish workflow now gates on CI passing before releasing to PyPI.
|
|
22
|
-
- Ruff configuration (pycodestyle, pyflakes, isort, pep8-naming, pyupgrade, bugbear, simplify, type-checking).
|
|
23
|
-
- Mypy configuration with `check_untyped_defs` and `ignore_missing_imports`.
|
|
24
|
-
- pytest-cov integration with 50 % minimum coverage threshold.
|
|
25
|
-
- `CONTRIBUTING.md` with development workflow, code style, and PR guidelines.
|
|
26
|
-
- This `CHANGELOG.md`.
|
|
27
|
-
- Pydantic models for runtime validation of all bridge command parameters (`addon/models.py`).
|
|
28
|
-
- `Dockerfile` and `.dockerignore` for containerized deployment.
|
|
29
|
-
- Explicit `pydantic>=2.0` dependency.
|
|
30
|
-
|
|
31
|
-
### Fixed
|
|
32
|
-
- Import sorting and formatting across all source files.
|
|
33
|
-
- Ambiguous variable names flagged by ruff (`l` → `line`, `label`).
|
|
34
|
-
- Replaced bare `try/except pass` with `contextlib.suppress` in headless executor.
|
|
35
|
-
- Kept the Blender bridge request queue timer alive across `.blend` file loads.
|
|
36
|
-
|
|
37
|
-
## [0.1.1] — 2026-03-08
|
|
38
|
-
|
|
39
|
-
### Fixed
|
|
40
|
-
- Blender bridge execution reliability.
|
|
41
|
-
- Documented Codex CLI setup in README.
|
|
42
|
-
|
|
43
|
-
## [0.1.0] — 2026-02-28
|
|
44
|
-
|
|
45
|
-
### Added
|
|
46
|
-
- Initial MCP server with 27 tools across 7 namespaces: scene inspection,
|
|
47
|
-
object mutation, materials, rendering & export, history, and Python execution.
|
|
48
|
-
- Blender add-on with TCP bridge server, command handler, and job manager.
|
|
49
|
-
- Headless Blender execution transport (`blender -b --python`).
|
|
50
|
-
- Async job system (create, poll, cancel, list) for long-running scripts.
|
|
51
|
-
- Safety model: module blocklist, output bounding, cooperative timeouts,
|
|
52
|
-
script path validation, optional tool whitelist.
|
|
53
|
-
- Automatic undo for mutation commands.
|
|
54
|
-
- Script library with 11 reusable Blender scripts.
|
|
55
|
-
- Demo scenes (dam-break simulation, pipe studies).
|
|
56
|
-
- PyPI packaging with OIDC-based GitHub Actions publishing.
|
|
57
|
-
- Architecture documentation and Python execution design spec.
|
|
58
|
-
- Unit tests for MCP server and add-on (mocked `bpy`).
|
|
59
|
-
|
|
60
|
-
[Unreleased]: https://github.com/djeada/blender-mcp-server/compare/v0.1.3...HEAD
|
|
61
|
-
[0.1.3]: https://github.com/djeada/blender-mcp-server/compare/v0.1.2...v0.1.3
|
|
62
|
-
[0.1.2]: https://github.com/djeada/blender-mcp-server/compare/v0.1.1...v0.1.2
|
|
63
|
-
[0.1.1]: https://github.com/djeada/blender-mcp-server/compare/v0.1.0...v0.1.1
|
|
64
|
-
[0.1.0]: https://github.com/djeada/blender-mcp-server/releases/tag/v0.1.0
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
# Contributing to blender-mcp-server
|
|
2
|
-
|
|
3
|
-
Thanks for your interest in contributing! This document explains how to get
|
|
4
|
-
started, what we expect from pull requests, and how the project is organised.
|
|
5
|
-
|
|
6
|
-
## Quick Start
|
|
7
|
-
|
|
8
|
-
```bash
|
|
9
|
-
git clone https://github.com/djeada/blender-mcp-server.git
|
|
10
|
-
cd blender-mcp-server
|
|
11
|
-
python3 -m venv .venv && source .venv/bin/activate
|
|
12
|
-
pip install -e ".[dev]"
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Development Workflow
|
|
16
|
-
|
|
17
|
-
### 1. Create a Branch
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
git checkout -b your-feature-name
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### 2. Make Changes
|
|
24
|
-
|
|
25
|
-
The project has two main components:
|
|
26
|
-
|
|
27
|
-
| Component | Location | Runs inside |
|
|
28
|
-
|-----------|----------|-------------|
|
|
29
|
-
| MCP server | `src/blender_mcp_server/` | Standalone Python process (stdio) |
|
|
30
|
-
| Blender add-on | `addon/` | Blender's embedded Python (`bpy`) |
|
|
31
|
-
|
|
32
|
-
Scripts in `scripts/library/` and `scripts/demos/` run inside Blender via
|
|
33
|
-
`python.execute` and may reference `bpy`, `args`, or `mathutils` at module
|
|
34
|
-
level — this is expected.
|
|
35
|
-
|
|
36
|
-
### 3. Lint and Format
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
ruff check src/ addon/ tests/ scripts/ --exclude scripts/.venv
|
|
40
|
-
ruff format src/ addon/ tests/ scripts/ --exclude scripts/.venv
|
|
41
|
-
mypy src/ addon/
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
All three commands must pass with zero errors. CI will reject PRs that fail.
|
|
45
|
-
|
|
46
|
-
### 4. Run Tests
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
pytest tests/test_server.py -v # MCP server tests (no Blender required)
|
|
50
|
-
pytest tests/test_addon.py -v # Add-on tests (mocked bpy, no Blender required)
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Coverage is collected automatically. The minimum coverage threshold is 50 %.
|
|
54
|
-
|
|
55
|
-
### 5. Commit and Push
|
|
56
|
-
|
|
57
|
-
Write clear commit messages. One logical change per commit.
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
git push origin your-feature-name
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### 6. Open a Pull Request
|
|
64
|
-
|
|
65
|
-
- Fill in a description of **what** changed and **why**.
|
|
66
|
-
- Link any related issues.
|
|
67
|
-
- CI must pass before merge.
|
|
68
|
-
|
|
69
|
-
## Code Style
|
|
70
|
-
|
|
71
|
-
- **Formatter/Linter**: [Ruff](https://docs.astral.sh/ruff/) — configured in `pyproject.toml`.
|
|
72
|
-
- **Type checker**: [mypy](https://mypy-lang.org/) — `ignore_missing_imports = true` for `bpy`.
|
|
73
|
-
- **Line length**: 120 characters.
|
|
74
|
-
- **Imports**: sorted by `isort` rules via Ruff.
|
|
75
|
-
- **Python version**: 3.10+ (use `X | Y` unions, not `Optional[X]`).
|
|
76
|
-
|
|
77
|
-
## Project Layout
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
blender-mcp-server/
|
|
81
|
-
├── addon/ # Blender add-on (TCP server + handlers)
|
|
82
|
-
├── src/blender_mcp_server/ # MCP server (stdio + tool definitions)
|
|
83
|
-
├── scripts/
|
|
84
|
-
│ ├── library/ # Reusable Blender scripts
|
|
85
|
-
│ └── demos/ # End-to-end demo scenes
|
|
86
|
-
├── tests/ # Unit tests (no Blender install required)
|
|
87
|
-
├── docs/ # Architecture & design documentation
|
|
88
|
-
└── pyproject.toml # Build, lint, test, and type-check config
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Adding a New MCP Tool
|
|
92
|
-
|
|
93
|
-
1. Add the bridge command handler in `addon/__init__.py` under `CommandHandler`.
|
|
94
|
-
2. Register the MCP tool in `src/blender_mcp_server/server.py` using `@mcp.tool(...)`.
|
|
95
|
-
3. Add tests in `tests/test_server.py` (tool registration) and `tests/test_addon.py`
|
|
96
|
-
(handler logic).
|
|
97
|
-
4. Document the tool in `README.md` under the appropriate namespace.
|
|
98
|
-
|
|
99
|
-
## Reporting Issues
|
|
100
|
-
|
|
101
|
-
- Use [GitHub Issues](https://github.com/djeada/blender-mcp-server/issues).
|
|
102
|
-
- Include: Blender version, Python version, OS, steps to reproduce, and error output.
|
|
103
|
-
|
|
104
|
-
## License
|
|
105
|
-
|
|
106
|
-
By contributing you agree that your contributions will be licensed under the
|
|
107
|
-
[MIT License](LICENSE).
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
FROM python:3.12-slim AS base
|
|
2
|
-
|
|
3
|
-
LABEL maintainer="Adam Djellouli <adam@djellouli.com>"
|
|
4
|
-
LABEL description="Blender MCP Server — headless mode (no addon bridge)"
|
|
5
|
-
|
|
6
|
-
WORKDIR /app
|
|
7
|
-
|
|
8
|
-
COPY pyproject.toml README.md LICENSE ./
|
|
9
|
-
COPY src/ src/
|
|
10
|
-
COPY addon/ addon/
|
|
11
|
-
|
|
12
|
-
RUN pip install --no-cache-dir .
|
|
13
|
-
|
|
14
|
-
# Blender is NOT bundled — mount or install Blender separately.
|
|
15
|
-
# The MCP server itself runs without Blender; headless transport
|
|
16
|
-
# needs BLENDER_BIN pointing to a blender binary.
|
|
17
|
-
ENV BLENDER_BIN=blender
|
|
18
|
-
|
|
19
|
-
ENTRYPOINT ["blender-mcp-server"]
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Adam Djellouli
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|