@hybridlabor-api/aos 4.4.0 → 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.
Files changed (306) hide show
  1. package/.agents/skills/firecrawl/SKILL.md +149 -0
  2. package/.agents/skills/firecrawl/rules/install.md +82 -0
  3. package/.agents/skills/firecrawl/rules/security.md +26 -0
  4. package/.agents/skills/firecrawl-agent/SKILL.md +58 -0
  5. package/.agents/skills/firecrawl-build/SKILL.md +39 -0
  6. package/.agents/skills/firecrawl-build-interact/SKILL.md +68 -0
  7. package/.agents/skills/firecrawl-build-onboarding/SKILL.md +103 -0
  8. package/.agents/skills/firecrawl-build-onboarding/references/auth-flow.md +39 -0
  9. package/.agents/skills/firecrawl-build-onboarding/references/project-setup.md +20 -0
  10. package/.agents/skills/firecrawl-build-onboarding/references/sdk-installation.md +17 -0
  11. package/.agents/skills/firecrawl-build-scrape/SKILL.md +69 -0
  12. package/.agents/skills/firecrawl-build-search/SKILL.md +69 -0
  13. package/.agents/skills/firecrawl-crawl/SKILL.md +59 -0
  14. package/.agents/skills/firecrawl-download/SKILL.md +70 -0
  15. package/.agents/skills/firecrawl-interact/SKILL.md +84 -0
  16. package/.agents/skills/firecrawl-map/SKILL.md +51 -0
  17. package/.agents/skills/firecrawl-scrape/SKILL.md +69 -0
  18. package/.agents/skills/firecrawl-search/SKILL.md +60 -0
  19. package/.claude/hooks/memb-inject.mjs +6 -0
  20. package/CLAUDE.md +573 -0
  21. package/README.de.md +0 -8
  22. package/README.md +0 -8
  23. package/README.pt.md +0 -8
  24. package/assets/brand/ao-ant-mark.svg +91 -0
  25. package/assets/brand/bdb-core-mark.svg +34 -0
  26. package/assets/brand/heimdall-guardian-mark.svg +16 -0
  27. package/assets/brand/memb-crystal-mark.svg +18 -0
  28. package/bin/aos-config.mjs +89 -0
  29. package/bin/aos-dashboard.mjs +608 -0
  30. package/bin/aos-uninstall.mjs +227 -0
  31. package/docs/sessions/audit-2026-09-14-silent-failures.md +114 -0
  32. package/docs/skills_table.md +0 -3
  33. package/installer.js +428 -237
  34. package/mcps/RhinoMCP/cc-plugin/.claude/settings.json +10 -0
  35. package/mcps/after-effects-mcp/build/index.js +840 -0
  36. package/mcps/after-effects-mcp/build/scripts/applyEffect.jsx +153 -0
  37. package/mcps/after-effects-mcp/build/scripts/applyEffectTemplate.jsx +218 -0
  38. package/mcps/after-effects-mcp/build/scripts/createComposition.jsx +71 -0
  39. package/mcps/after-effects-mcp/build/scripts/createShapeLayer.jsx +147 -0
  40. package/mcps/after-effects-mcp/build/scripts/createSolidLayer.jsx +114 -0
  41. package/mcps/after-effects-mcp/build/scripts/createTextLayer.jsx +115 -0
  42. package/mcps/after-effects-mcp/build/scripts/getLayerInfo.jsx +192 -0
  43. package/mcps/after-effects-mcp/build/scripts/getProjectInfo.jsx +90 -0
  44. package/mcps/after-effects-mcp/build/scripts/listCompositions.jsx +50 -0
  45. package/mcps/after-effects-mcp/build/scripts/mcp-bridge-auto.jsx +1773 -0
  46. package/mcps/after-effects-mcp/build/scripts/setLayerProperties.jsx +160 -0
  47. package/mcps/computer-use-mcp/dist/client.d.ts +150 -0
  48. package/mcps/computer-use-mcp/dist/client.js +136 -0
  49. package/mcps/computer-use-mcp/dist/entrypoint.d.ts +16 -0
  50. package/mcps/computer-use-mcp/dist/entrypoint.js +26 -0
  51. package/mcps/computer-use-mcp/dist/native.d.ts +212 -0
  52. package/mcps/computer-use-mcp/dist/native.js +50 -0
  53. package/mcps/computer-use-mcp/dist/server.d.ts +32 -0
  54. package/mcps/computer-use-mcp/dist/server.js +342 -0
  55. package/mcps/computer-use-mcp/dist/session.d.ts +101 -0
  56. package/mcps/computer-use-mcp/dist/session.js +2372 -0
  57. package/package.json +13 -4
  58. package/skills/global_config/aos-project-init/SKILL.md +97 -130
  59. package/skills/global_config/aos-project-init/assets/openwikiignore.template +62 -0
  60. package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +38 -1
  61. package/skills/global_config/aos-setup/SKILL.md +110 -11
  62. package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +48 -4
  63. package/skills/global_config/ask-tim/SKILL.md +2 -7
  64. package/skills/global_config/openwiki-skill/scripts/openwiki_daemon.py +65 -12
  65. package/bin/setup-saas.mjs +0 -792
  66. package/mcps/blender-mcp-server/.dockerignore +0 -19
  67. package/mcps/blender-mcp-server/.github/workflows/ci.yml +0 -67
  68. package/mcps/blender-mcp-server/.github/workflows/publish-pypi.yml +0 -54
  69. package/mcps/blender-mcp-server/CHANGELOG.md +0 -64
  70. package/mcps/blender-mcp-server/CONTRIBUTING.md +0 -107
  71. package/mcps/blender-mcp-server/Dockerfile +0 -19
  72. package/mcps/blender-mcp-server/LICENSE +0 -21
  73. package/mcps/blender-mcp-server/README.md +0 -409
  74. package/mcps/blender-mcp-server/addon/__init__.py +0 -1440
  75. package/mcps/blender-mcp-server/addon/models.py +0 -223
  76. package/mcps/blender-mcp-server/pyproject.toml +0 -120
  77. package/mcps/blender-mcp-server/scripts/blender_bridge_request.py +0 -71
  78. package/mcps/blender-mcp-server/scripts/blender_create_test_cube.py +0 -49
  79. package/mcps/blender-mcp-server/scripts/blender_scene_info.py +0 -38
  80. package/mcps/blender-mcp-server/scripts/build_addon_zip.sh +0 -29
  81. package/mcps/blender-mcp-server/scripts/demos/README.md +0 -186
  82. package/mcps/blender-mcp-server/scripts/demos/dam_break_scene.py +0 -276
  83. package/mcps/blender-mcp-server/scripts/demos/open_dam_break_gui.py +0 -33
  84. package/mcps/blender-mcp-server/scripts/demos/pipe_movement_study.py +0 -518
  85. package/mcps/blender-mcp-server/scripts/demos/pipe_pressure_failure_scene.py +0 -806
  86. package/mcps/blender-mcp-server/scripts/demos/procedural_dam_break_scene.py +0 -600
  87. package/mcps/blender-mcp-server/scripts/demos/run_dam_break.py +0 -510
  88. package/mcps/blender-mcp-server/scripts/launch_blender_gui.py +0 -41
  89. package/mcps/blender-mcp-server/scripts/library/README.md +0 -64
  90. package/mcps/blender-mcp-server/scripts/library/apply_transforms.py +0 -46
  91. package/mcps/blender-mcp-server/scripts/library/camera.py +0 -51
  92. package/mcps/blender-mcp-server/scripts/library/collections.py +0 -65
  93. package/mcps/blender-mcp-server/scripts/library/create_mesh.py +0 -41
  94. package/mcps/blender-mcp-server/scripts/library/effector.py +0 -48
  95. package/mcps/blender-mcp-server/scripts/library/fluid_domain.py +0 -80
  96. package/mcps/blender-mcp-server/scripts/library/fluid_inflow.py +0 -98
  97. package/mcps/blender-mcp-server/scripts/library/frame_range.py +0 -35
  98. package/mcps/blender-mcp-server/scripts/library/keyframes.py +0 -59
  99. package/mcps/blender-mcp-server/scripts/library/rigid_body.py +0 -52
  100. package/mcps/blender-mcp-server/scripts/library/save_blend.py +0 -40
  101. package/mcps/blender-mcp-server/scripts/server_start.sh +0 -26
  102. package/mcps/blender-mcp-server/src/blender_mcp_server/__init__.py +0 -3
  103. package/mcps/blender-mcp-server/src/blender_mcp_server/headless.py +0 -330
  104. package/mcps/blender-mcp-server/src/blender_mcp_server/server.py +0 -606
  105. package/mcps/davinci-mcp-professional/.bandit +0 -35
  106. package/mcps/davinci-mcp-professional/.claude/commands/security-review.md +0 -191
  107. package/mcps/davinci-mcp-professional/.claude/settings.json +0 -1
  108. package/mcps/davinci-mcp-professional/.editorconfig +0 -27
  109. package/mcps/davinci-mcp-professional/.gitattributes +0 -207
  110. package/mcps/davinci-mcp-professional/.github/CODEOWNERS +0 -2
  111. package/mcps/davinci-mcp-professional/.github/ISSUE_TEMPLATE/bug_report.md +0 -33
  112. package/mcps/davinci-mcp-professional/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  113. package/mcps/davinci-mcp-professional/.github/PULL_REQUEST_TEMPLATE.md +0 -20
  114. package/mcps/davinci-mcp-professional/.github/SECURITY.md +0 -97
  115. package/mcps/davinci-mcp-professional/.github/dependabot.yml +0 -27
  116. package/mcps/davinci-mcp-professional/.github/workflows/ci.yml +0 -39
  117. package/mcps/davinci-mcp-professional/ATTRIBUTION.md +0 -4
  118. package/mcps/davinci-mcp-professional/AUTHORS.md +0 -9
  119. package/mcps/davinci-mcp-professional/BUGS.md +0 -55
  120. package/mcps/davinci-mcp-professional/CLAUDE.md +0 -229
  121. package/mcps/davinci-mcp-professional/CONTRIBUTING.md +0 -51
  122. package/mcps/davinci-mcp-professional/COPYING.md +0 -228
  123. package/mcps/davinci-mcp-professional/Doxyfile +0 -379
  124. package/mcps/davinci-mcp-professional/README.md +0 -143
  125. package/mcps/davinci-mcp-professional/SECURITY.md +0 -40
  126. package/mcps/davinci-mcp-professional/USING.md +0 -301
  127. package/mcps/davinci-mcp-professional/VERSION.md +0 -13
  128. package/mcps/davinci-mcp-professional/build.py +0 -169
  129. package/mcps/davinci-mcp-professional/claude_desktop_config_template.json +0 -11
  130. package/mcps/davinci-mcp-professional/hooks/ci-check.sh +0 -29
  131. package/mcps/davinci-mcp-professional/hooks/pre-push +0 -46
  132. package/mcps/davinci-mcp-professional/main.py +0 -40
  133. package/mcps/davinci-mcp-professional/mcp_server.py +0 -30
  134. package/mcps/davinci-mcp-professional/pyproject.toml +0 -115
  135. package/mcps/davinci-mcp-professional/security_audit.py +0 -379
  136. package/mcps/davinci-mcp-professional/src/davinci_mcp/__init__.py +0 -19
  137. package/mcps/davinci-mcp-professional/src/davinci_mcp/cli.py +0 -138
  138. package/mcps/davinci-mcp-professional/src/davinci_mcp/resolve_client.py +0 -342
  139. package/mcps/davinci-mcp-professional/src/davinci_mcp/resources/__init__.py +0 -60
  140. package/mcps/davinci-mcp-professional/src/davinci_mcp/server.py +0 -185
  141. package/mcps/davinci-mcp-professional/src/davinci_mcp/tools/__init__.py +0 -146
  142. package/mcps/davinci-mcp-professional/src/davinci_mcp/types.py +0 -125
  143. package/mcps/davinci-mcp-professional/src/davinci_mcp/utils/__init__.py +0 -19
  144. package/mcps/davinci-mcp-professional/src/davinci_mcp/utils/platform.py +0 -239
  145. package/mcps/davinci-mcp-professional/test.py +0 -186
  146. package/mcps/davinci-mcp-professional/uv.lock +0 -2073
  147. package/mcps/davinci-resolve-mcp/.claude/skills/media-analysis.md +0 -44
  148. package/mcps/davinci-resolve-mcp/.clinerules +0 -17
  149. package/mcps/davinci-resolve-mcp/.cursorrules +0 -17
  150. package/mcps/davinci-resolve-mcp/.github/copilot-instructions.md +0 -17
  151. package/mcps/davinci-resolve-mcp/.github/workflows/npm-publish.yml +0 -109
  152. package/mcps/davinci-resolve-mcp/.windsurfrules +0 -17
  153. package/mcps/davinci-resolve-mcp/AGENTS.md +0 -114
  154. package/mcps/davinci-resolve-mcp/CHANGELOG.md +0 -2648
  155. package/mcps/davinci-resolve-mcp/CLAUDE.md +0 -15
  156. package/mcps/davinci-resolve-mcp/LICENSE +0 -21
  157. package/mcps/davinci-resolve-mcp/README.md +0 -173
  158. package/mcps/davinci-resolve-mcp/SECURITY.md +0 -53
  159. package/mcps/davinci-resolve-mcp/bin/davinci-resolve-mcp.mjs +0 -450
  160. package/mcps/davinci-resolve-mcp/examples/README.md +0 -53
  161. package/mcps/davinci-resolve-mcp/examples/markers/README.md +0 -81
  162. package/mcps/davinci-resolve-mcp/examples/media/README.md +0 -94
  163. package/mcps/davinci-resolve-mcp/examples/timeline/README.md +0 -98
  164. package/mcps/davinci-resolve-mcp/install.py +0 -1687
  165. package/mcps/davinci-resolve-mcp/package.json +0 -52
  166. package/mcps/davinci-resolve-mcp/release-notes/v2.22.0.md +0 -51
  167. package/mcps/davinci-resolve-mcp/release-notes/v2.23.0.md +0 -51
  168. package/mcps/davinci-resolve-mcp/release-notes/v2.23.1.md +0 -35
  169. package/mcps/davinci-resolve-mcp/release-notes/v2.24.1.md +0 -32
  170. package/mcps/davinci-resolve-mcp/scripts/audit_api_parity.py +0 -275
  171. package/mcps/davinci-resolve-mcp/scripts/audit_readwrite_symmetry.py +0 -80
  172. package/mcps/davinci-resolve-mcp/scripts/doctor.py +0 -227
  173. package/mcps/davinci-resolve-mcp/scripts/gen_api_limitations.py +0 -144
  174. package/mcps/davinci-resolve-mcp/scripts/live_media_analysis_polish_probe.py +0 -65
  175. package/mcps/davinci-resolve-mcp/scripts/measure_bridge_cost.py +0 -65
  176. package/mcps/davinci-resolve-mcp/scripts/regen_panel_screenshots.py +0 -76
  177. package/mcps/davinci-resolve-mcp/src/__init__.py +0 -3
  178. package/mcps/davinci-resolve-mcp/src/analysis_dashboard.py +0 -15505
  179. package/mcps/davinci-resolve-mcp/src/batch_cli.py +0 -540
  180. package/mcps/davinci-resolve-mcp/src/control_panel.py +0 -13
  181. package/mcps/davinci-resolve-mcp/src/granular/__init__.py +0 -17
  182. package/mcps/davinci-resolve-mcp/src/granular/common.py +0 -741
  183. package/mcps/davinci-resolve-mcp/src/granular/folder.py +0 -420
  184. package/mcps/davinci-resolve-mcp/src/granular/gallery.py +0 -306
  185. package/mcps/davinci-resolve-mcp/src/granular/graph.py +0 -309
  186. package/mcps/davinci-resolve-mcp/src/granular/media_pool.py +0 -679
  187. package/mcps/davinci-resolve-mcp/src/granular/media_pool_item.py +0 -1020
  188. package/mcps/davinci-resolve-mcp/src/granular/media_storage.py +0 -179
  189. package/mcps/davinci-resolve-mcp/src/granular/project.py +0 -1654
  190. package/mcps/davinci-resolve-mcp/src/granular/resolve_control.py +0 -538
  191. package/mcps/davinci-resolve-mcp/src/granular/timeline.py +0 -1075
  192. package/mcps/davinci-resolve-mcp/src/granular/timeline_item.py +0 -2251
  193. package/mcps/davinci-resolve-mcp/src/resolve_mcp_server.py +0 -43
  194. package/mcps/davinci-resolve-mcp/src/server.py +0 -24116
  195. package/mcps/davinci-resolve-mcp/src/utils/__init__.py +0 -3
  196. package/mcps/davinci-resolve-mcp/src/utils/actor_identity.py +0 -46
  197. package/mcps/davinci-resolve-mcp/src/utils/analysis_caps.py +0 -678
  198. package/mcps/davinci-resolve-mcp/src/utils/analysis_memory.py +0 -755
  199. package/mcps/davinci-resolve-mcp/src/utils/analysis_runs.py +0 -307
  200. package/mcps/davinci-resolve-mcp/src/utils/analysis_store.py +0 -945
  201. package/mcps/davinci-resolve-mcp/src/utils/api_truth.py +0 -525
  202. package/mcps/davinci-resolve-mcp/src/utils/app_control.py +0 -319
  203. package/mcps/davinci-resolve-mcp/src/utils/audio_fairlight_live_probe.py +0 -263
  204. package/mcps/davinci-resolve-mcp/src/utils/brain_edits.py +0 -387
  205. package/mcps/davinci-resolve-mcp/src/utils/bridge_metrics.py +0 -76
  206. package/mcps/davinci-resolve-mcp/src/utils/cdl.py +0 -20
  207. package/mcps/davinci-resolve-mcp/src/utils/clip_query.py +0 -85
  208. package/mcps/davinci-resolve-mcp/src/utils/cloud_operations.py +0 -192
  209. package/mcps/davinci-resolve-mcp/src/utils/color_grade_live_probe.py +0 -444
  210. package/mcps/davinci-resolve-mcp/src/utils/contracts.py +0 -102
  211. package/mcps/davinci-resolve-mcp/src/utils/cut_ir.py +0 -115
  212. package/mcps/davinci-resolve-mcp/src/utils/dctl_templates.py +0 -368
  213. package/mcps/davinci-resolve-mcp/src/utils/deep_vision.py +0 -643
  214. package/mcps/davinci-resolve-mcp/src/utils/destructive_hook.py +0 -606
  215. package/mcps/davinci-resolve-mcp/src/utils/edit_engine.py +0 -737
  216. package/mcps/davinci-resolve-mcp/src/utils/embeddings.py +0 -922
  217. package/mcps/davinci-resolve-mcp/src/utils/entities.py +0 -579
  218. package/mcps/davinci-resolve-mcp/src/utils/extension_authoring_live_probe.py +0 -292
  219. package/mcps/davinci-resolve-mcp/src/utils/failure_tracker.py +0 -119
  220. package/mcps/davinci-resolve-mcp/src/utils/fuse_templates.py +0 -1968
  221. package/mcps/davinci-resolve-mcp/src/utils/fusion_composition_live_probe.py +0 -284
  222. package/mcps/davinci-resolve-mcp/src/utils/fusion_group_settings.py +0 -334
  223. package/mcps/davinci-resolve-mcp/src/utils/layout_presets.py +0 -333
  224. package/mcps/davinci-resolve-mcp/src/utils/mcp_stdio.py +0 -32
  225. package/mcps/davinci-resolve-mcp/src/utils/mcp_transport.py +0 -128
  226. package/mcps/davinci-resolve-mcp/src/utils/media_analysis.py +0 -7690
  227. package/mcps/davinci-resolve-mcp/src/utils/media_analysis_jobs.py +0 -805
  228. package/mcps/davinci-resolve-mcp/src/utils/media_pool_changes.py +0 -121
  229. package/mcps/davinci-resolve-mcp/src/utils/media_pool_ingest_live_probe.py +0 -592
  230. package/mcps/davinci-resolve-mcp/src/utils/multicam.py +0 -393
  231. package/mcps/davinci-resolve-mcp/src/utils/object_inspection.py +0 -301
  232. package/mcps/davinci-resolve-mcp/src/utils/page_lock.py +0 -75
  233. package/mcps/davinci-resolve-mcp/src/utils/platform.py +0 -157
  234. package/mcps/davinci-resolve-mcp/src/utils/proc.py +0 -26
  235. package/mcps/davinci-resolve-mcp/src/utils/project_cleanup.py +0 -73
  236. package/mcps/davinci-resolve-mcp/src/utils/project_lifecycle_live_probe.py +0 -376
  237. package/mcps/davinci-resolve-mcp/src/utils/project_lint.py +0 -131
  238. package/mcps/davinci-resolve-mcp/src/utils/project_properties.py +0 -601
  239. package/mcps/davinci-resolve-mcp/src/utils/project_spec.py +0 -459
  240. package/mcps/davinci-resolve-mcp/src/utils/readback.py +0 -91
  241. package/mcps/davinci-resolve-mcp/src/utils/render_deliver_live_probe.py +0 -384
  242. package/mcps/davinci-resolve-mcp/src/utils/resolve_ai_governance.py +0 -214
  243. package/mcps/davinci-resolve-mcp/src/utils/resolve_ai_ledger.py +0 -244
  244. package/mcps/davinci-resolve-mcp/src/utils/resolve_busy.py +0 -171
  245. package/mcps/davinci-resolve-mcp/src/utils/resolve_connection.py +0 -77
  246. package/mcps/davinci-resolve-mcp/src/utils/review_annotation_live_probe.py +0 -352
  247. package/mcps/davinci-resolve-mcp/src/utils/script_templates.py +0 -1193
  248. package/mcps/davinci-resolve-mcp/src/utils/shot_relationships.py +0 -544
  249. package/mcps/davinci-resolve-mcp/src/utils/structural_diff.py +0 -175
  250. package/mcps/davinci-resolve-mcp/src/utils/sync_detection.py +0 -889
  251. package/mcps/davinci-resolve-mcp/src/utils/timeline_brain_db.py +0 -826
  252. package/mcps/davinci-resolve-mcp/src/utils/timeline_conform_live_probe.py +0 -280
  253. package/mcps/davinci-resolve-mcp/src/utils/timeline_kernel_live_probe.py +0 -1092
  254. package/mcps/davinci-resolve-mcp/src/utils/timeline_kernel_probe.py +0 -185
  255. package/mcps/davinci-resolve-mcp/src/utils/timeline_title_text.py +0 -87
  256. package/mcps/davinci-resolve-mcp/src/utils/timeline_versioning.py +0 -730
  257. package/mcps/davinci-resolve-mcp/src/utils/update_check.py +0 -685
  258. package/mcps/vectorworks-mcp/.dockerignore +0 -8
  259. package/mcps/vectorworks-mcp/Dockerfile +0 -28
  260. package/mcps/vectorworks-mcp/README.md +0 -156
  261. package/mcps/vectorworks-mcp/app/__init__.py +0 -2
  262. package/mcps/vectorworks-mcp/app/api.py +0 -52
  263. package/mcps/vectorworks-mcp/app/chunking.py +0 -56
  264. package/mcps/vectorworks-mcp/app/config.py +0 -29
  265. package/mcps/vectorworks-mcp/app/embeddings.py +0 -28
  266. package/mcps/vectorworks-mcp/app/indexer.py +0 -106
  267. package/mcps/vectorworks-mcp/app/main.py +0 -33
  268. package/mcps/vectorworks-mcp/app/mcp_server.py +0 -71
  269. package/mcps/vectorworks-mcp/app/search.py +0 -54
  270. package/mcps/vectorworks-mcp/app/utils.py +0 -14
  271. package/mcps/vectorworks-mcp/data/.gitkeep +0 -1
  272. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_PluginScript.htm +0 -95
  273. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_ScriptEditor.htm +0 -266
  274. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_Scripting.htm +0 -106
  275. package/mcps/vectorworks-mcp/data/vw-app-help/VW2023_CreatingScriptedPlugins.htm +0 -327
  276. package/mcps/vectorworks-mcp/data/vw-app-help/VW2024_RunningScripts.htm +0 -116
  277. package/mcps/vectorworks-mcp/data/vw-devwiki/VS_Function_Reference_category.html +0 -2129
  278. package/mcps/vectorworks-mcp/data/vw-jp-ref/ObjectsSymbols.html +0 -2035
  279. package/mcps/vectorworks-mcp/data/vw-jp-ref/ScriptFunctionReference.html +0 -29
  280. package/mcps/vectorworks-mcp/design.md +0 -57
  281. package/mcps/vectorworks-mcp/docker-compose.yml +0 -18
  282. package/mcps/vectorworks-mcp/index/.gitkeep +0 -1
  283. package/mcps/vectorworks-mcp/index/meta.jsonl +0 -3956
  284. package/mcps/vectorworks-mcp/index/vw.faiss +0 -0
  285. package/mcps/vectorworks-mcp/requirements.txt +0 -10
  286. package/mcps/vectorworks-mcp/scripts/fetch_docs_minimal.sh +0 -84
  287. package/mcps/vectorworks-mcp/scripts/fetch_github_vectorworks.sh +0 -85
  288. package/mcps/vectorworks-mcp/templates/index.html +0 -40
  289. package/scripts/ecosystem-health-audit.js +0 -257
  290. package/skills/bdb-dev-os-skill/SKILL.md +0 -49
  291. package/skills/bdb-dev-os-skill/package.json +0 -11
  292. package/skills/bdbsaastraining/SKILL.md +0 -316
  293. package/skills/bdbsaastraining/references/exam-pool.md +0 -313
  294. package/skills/bdbsaastraining/references/interaction-modes.md +0 -94
  295. package/skills/bdbsaastraining/references/track-a-ai-agent.md +0 -111
  296. package/skills/bdbsaastraining/references/track-b-wordpress.md +0 -111
  297. package/skills/bdbsaastraining/references/track-c-mailserver.md +0 -107
  298. package/skills/bdbsaastraining/references/track-d-debian.md +0 -109
  299. package/skills/bdbsaastraining/references/track-e-custom.md +0 -83
  300. package/skills/bdbsaastraining/scripts/build_profile.py +0 -529
  301. package/skills/bdbsaastraining/scripts/generate_certificate.py +0 -161
  302. package/skills/bdbsaastraining/scripts/preflight_check.sh +0 -150
  303. package/skills/bdbsaastraining/templates/certificate_template.html +0 -508
  304. package/skills/global_config/bdb-ecosystem-health/SKILL.md +0 -68
  305. package/skills/global_config/bdbsaas-ops/SKILL.md +0 -16
  306. package/skills/global_config/bdbsaashost/SKILL.md +0 -125
Binary file
@@ -1,10 +0,0 @@
1
- fastapi==0.115.0
2
- uvicorn[standard]==0.30.6
3
- jinja2==3.1.4
4
- httpx==0.27.2
5
- websockets==12.0
6
- sentence-transformers==3.0.1
7
- faiss-cpu==1.8.0.post1
8
- numpy==1.26.4
9
- orjson==3.10.7
10
- python-dotenv==1.0.1
@@ -1,84 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- # Minimal, ingestion-ready docs fetcher (md/html only)
5
-
6
- ROOT="$(cd "$(dirname "$0")/.." && pwd)"
7
- DATA_DIR="${ROOT}/data"
8
- mkdir -p "${DATA_DIR}"
9
-
10
- echo "==> Clone: Vectorworks developer-scripting (GitHub)"
11
- # Official scripting landing/how-to content (markdown/html)
12
- # https://github.com/Vectorworks/developer-scripting
13
- if [ ! -d "${DATA_DIR}/vw-dev-scripting" ]; then
14
- git clone --depth=1 https://github.com/Vectorworks/developer-scripting "${DATA_DIR}/vw-dev-scripting"
15
- else
16
- git -C "${DATA_DIR}/vw-dev-scripting" pull --ff-only
17
- fi
18
-
19
- echo "==> Fetch: App Help (core scripting pages 2022/2023/2024)"
20
- APP_HELP="${DATA_DIR}/vw-app-help"
21
- mkdir -p "${APP_HELP}"
22
-
23
- UA_DEFAULT="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0 Safari/537.36"
24
- UA="${UA:-$UA_DEFAULT}"
25
-
26
- fetch() {
27
- local url="$1"
28
- local out="$2"
29
- echo "fetch ${url} -> ${out}"
30
- curl -fsSL -H "User-Agent: ${UA}" "$url" -o "$out"
31
- }
32
-
33
- fetch_optional() {
34
- local url="$1"
35
- local out="$2"
36
- echo "fetch(optional) ${url} -> ${out}"
37
- if ! curl -fsSL -H "User-Agent: ${UA}" "$url" -o "$out"; then
38
- echo "WARN: Failed to fetch optional resource: ${url} (skipped)" >&2
39
- fi
40
- }
41
-
42
- # 2022 Scripting top
43
- fetch "https://app-help.vectorworks.net/2022/eng/VW2022_Guide/Scripts/Scripting.htm" \
44
- "${APP_HELP}/VW2022_Scripting.htm"
45
-
46
- # 2022 Script Editor / palettes
47
- fetch "https://app-help.vectorworks.net/2022/eng/VW2022_Guide/Scripts/Creating_and_editing_script_palettes_and_scripts.htm" \
48
- "${APP_HELP}/VW2022_ScriptEditor.htm"
49
-
50
- # 2022 plug-in script specification
51
- fetch "https://app-help.vectorworks.net/2022/eng/VW2022_Guide/Scripts/Specifying_the_plug-in_script.htm" \
52
- "${APP_HELP}/VW2022_PluginScript.htm"
53
-
54
- # 2023 Creating scripted plug-ins (explicit practical page)
55
- fetch "https://app-help.vectorworks.net/2023/eng/VW2023_Guide/Scripts/Creating_scripted%20plug-ins.htm?agt=index" \
56
- "${APP_HELP}/VW2023_CreatingScriptedPlugins.htm"
57
-
58
- # 2024 Running scripts (how to run)
59
- fetch "https://app-help.vectorworks.net/2024/eng/VW2024_Guide/Scripts/Running_scripts.htm" \
60
- "${APP_HELP}/VW2024_RunningScripts.htm"
61
-
62
- echo "==> Fetch: VectorScript reference (JP index + example page)"
63
- JP_REF="${DATA_DIR}/vw-jp-ref"
64
- mkdir -p "${JP_REF}"
65
-
66
- # Function index (Japanese)
67
- fetch "https://www.vectorworks.co.jp/develop/ScriptReference/ScriptFunctionReference.html" \
68
- "${JP_REF}/ScriptFunctionReference.html"
69
-
70
- # Example: Objects/Symbols API page
71
- fetch "https://www.vectorworks.co.jp/develop/ScriptReference/Pages/ObjectsSymbols.html" \
72
- "${JP_REF}/ObjectsSymbols.html"
73
-
74
- echo "==> Fetch: Developer Wiki category page (EN)"
75
- DEVWIKI="${DATA_DIR}/vw-devwiki"
76
- mkdir -p "${DEVWIKI}"
77
-
78
- # Category index sample page (HTML). Note: PDF not fetched (not ingested).
79
- # Some endpoints may return 403 to generic clients; treat as optional.
80
- fetch_optional "https://developer.vectorworks.net/index.php?pagefrom=SetDocDrpShadwByCls%0AVS%3ASetDocDrpShadwByCls&subcatfrom=VS+Function+Reference%3ADimensions&title=Category%3AVS_Function_Reference&until=VS+Function+Reference%3ADimensions" \
81
- "${DEVWIKI}/VS_Function_Reference_category.html"
82
-
83
- echo "==> Done. Saved under: ${DATA_DIR}"
84
- echo "Files ready for ingestion: .md/.html under ${DATA_DIR}"
@@ -1,85 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- # Clone/update selected Vectorworks repos into:
5
- # ${DATA_DIR:-data}/github/vectorworks/<repo>
6
- #
7
- # Optional env:
8
- # DATA_DIR Base data dir (default: data)
9
- # REPOS Space- or comma-separated owner/repo list
10
- # Default:
11
- # Vectorworks/developer-scripting \
12
- # Vectorworks/developer-sdk \
13
- # Vectorworks/developer-worksheets
14
-
15
- DATA_DIR=${DATA_DIR:-data}
16
- BASE_DIR="$DATA_DIR/github/vectorworks"
17
- mkdir -p "$BASE_DIR"
18
-
19
- DEFAULT_REPOS=(
20
- "Vectorworks/developer-scripting"
21
- "Vectorworks/developer-sdk"
22
- "Vectorworks/developer-worksheets"
23
- )
24
-
25
- if [[ -n "${REPOS:-}" ]]; then
26
- # allow comma or space separated
27
- IFS=' ' read -r -a REPOS_LIST <<< "$(echo "$REPOS" | tr ',' ' ')"
28
- else
29
- REPOS_LIST=("${DEFAULT_REPOS[@]}")
30
- fi
31
-
32
- echo "[info] Syncing ${#REPOS_LIST[@]} repositories"
33
- for full in "${REPOS_LIST[@]}"; do
34
- owner="${full%%/*}"
35
- repo="${full##*/}"
36
- url="https://github.com/$full.git"
37
- dest="$BASE_DIR/$repo"
38
-
39
- if [[ -d "$dest" && ! -d "$dest/.git" ]]; then
40
- echo "[warn] $dest exists but is not a git repo. Skipped." >&2
41
- continue
42
- fi
43
-
44
- if [[ -d "$dest/.git" ]]; then
45
- echo "[update] $full"
46
- default_branch=$(git -C "$dest" remote show origin | awk '/HEAD branch/ {print $NF}')
47
- # Ensure we are on the default branch
48
- current_branch=$(git -C "$dest" rev-parse --abbrev-ref HEAD || echo "")
49
- if [[ -n "$default_branch" && "$current_branch" != "$default_branch" ]]; then
50
- git -C "$dest" checkout -B "$default_branch" --track "origin/$default_branch" 2>/dev/null || \
51
- git -C "$dest" checkout "$default_branch" 2>/dev/null || true
52
- fi
53
-
54
- if [[ "${UPDATE_MODE:-pull}" == "pull" ]]; then
55
- # Prefer fast-forward pull with shallow fetch for speed
56
- if [[ -n "$default_branch" ]]; then
57
- git -C "$dest" pull --ff-only --depth=1 --prune origin "$default_branch" || {
58
- echo "[warn] pull failed; falling back to fetch+reset" >&2
59
- git -C "$dest" fetch --force --depth=1 origin "$default_branch"
60
- git -C "$dest" reset --hard "origin/$default_branch"
61
- }
62
- else
63
- git -C "$dest" pull --ff-only --depth=1 --prune origin || {
64
- echo "[warn] pull failed; falling back to fetch+reset (HEAD)" >&2
65
- git -C "$dest" fetch --force --depth=1 origin
66
- git -C "$dest" reset --hard "origin/HEAD"
67
- }
68
- fi
69
- else
70
- # Clean, deterministic sync (discard local changes)
71
- if [[ -n "$default_branch" ]]; then
72
- git -C "$dest" fetch --force --depth=1 origin "$default_branch"
73
- git -C "$dest" reset --hard "origin/$default_branch"
74
- else
75
- git -C "$dest" fetch --force --depth=1 origin
76
- git -C "$dest" reset --hard "origin/HEAD"
77
- fi
78
- fi
79
- else
80
- echo "[clone] $full -> $dest"
81
- git clone --depth=1 "$url" "$dest"
82
- fi
83
- done
84
-
85
- echo "[done] Repositories synced under: $BASE_DIR"
@@ -1,40 +0,0 @@
1
- <!doctype html>
2
- <html lang="ja">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>Vectorworks Docs 検索</title>
7
- <style>
8
- body { font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; margin: 2rem auto; max-width: 900px; line-height: 1.5; }
9
- form { display: flex; gap: .5rem; }
10
- input[type=text] { flex: 1; padding: .6rem .8rem; font-size: 1rem; }
11
- button { padding: .6rem 1rem; font-size: 1rem; }
12
- .card { border: 1px solid #ddd; border-radius: 8px; padding: .8rem 1rem; margin: 1rem 0; }
13
- .meta { color: #444; font-size: .9rem; }
14
- code { background: #f6f8fa; padding: 0 .2rem; border-radius: 3px; }
15
- .score { float: right; color: #555; }
16
- </style>
17
- </head>
18
- <body>
19
- <h1>Vectorworks Docs 検索</h1>
20
- <form method="get" action="/">
21
- <input type="text" name="q" placeholder="API名や関数、キーワードで検索" value="{{ q }}" />
22
- <button type="submit">検索</button>
23
- </form>
24
-
25
- {% if q and results|length == 0 %}
26
- <p>該当する結果が見つかりませんでした。</p>
27
- {% endif %}
28
-
29
- {% for r in results %}
30
- <div class="card">
31
- <div class="meta">
32
- <span>{{ r.doc_id }} #{{ r.chunk_id }}</span>
33
- <span class="score">score: {{ '%.3f'|format(r.score) }}</span>
34
- </div>
35
- <pre style="white-space: pre-wrap;">{{ r.text }}</pre>
36
- </div>
37
- {% endfor %}
38
- </body>
39
- </html>
40
-
@@ -1,257 +0,0 @@
1
- #!/usr/bin/env node
2
- const fs = require('fs');
3
- const os = require('os');
4
- const path = require('path');
5
- const { execSync } = require('child_process');
6
-
7
- const REPOS = [
8
- { id: 'bdb-dev-optimized-agent-skills', name: 'BDB Agent OS Kernel', type: 'kernel' },
9
- { id: 'bdb-dev-tool-installer', name: 'Tool Installer Hub', type: 'module' },
10
- { id: 'bdb-synapse', name: 'Synapse 3D', type: 'module' },
11
- { id: 'memB', name: 'memB Vector Engine', type: 'module' },
12
- { id: 'heimdall-token-saver', name: 'Heimdall Token Saver', type: 'module' },
13
- { id: 'bdb-os-remote', name: 'BDB OS Remote Gateway', type: 'module' },
14
- { id: 'bdb-os-agent-workspace', name: 'OS Agent Workspace', type: 'module' },
15
- { id: 'bdb-dev-creator-extension', name: 'Creator Extension', type: 'module' }
16
- ];
17
-
18
- const BASE_PATH = path.join(os.homedir(), 'dev', 'bdb-dev');
19
- const REPORT_DIR = path.join(BASE_PATH, 'marketing-intern', 'reports');
20
- const REPORT_FILE = path.join(REPORT_DIR, 'ecosystem_health_latest.html');
21
-
22
- if (!fs.existsSync(REPORT_DIR)) {
23
- fs.mkdirSync(REPORT_DIR, { recursive: true });
24
- }
25
-
26
- console.log('🔍 Running BDB Ecosystem Health Audit...');
27
-
28
- const results = [];
29
- let totalIssues = 0;
30
- const remediationPlan = [];
31
-
32
- for (const item of REPOS) {
33
- const repoDir = path.join(BASE_PATH, item.id);
34
- const pkgPath = path.join(repoDir, 'package.json');
35
-
36
- let pkgName = 'N/A';
37
- let localVer = 'N/A';
38
- let npmVer = 'N/A';
39
- let gitBranch = 'unknown';
40
- let gitDirty = false;
41
- let unpushedCommits = 0;
42
- let ciStatus = 'unknown';
43
- let ciWorkflow = '';
44
- let issues = [];
45
-
46
- if (fs.existsSync(pkgPath)) {
47
- try {
48
- const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
49
- pkgName = pkg.name;
50
- localVer = pkg.version;
51
- try {
52
- npmVer = execSync(`npm view ${pkg.name} version 2>/dev/null`, { encoding: 'utf8' }).trim();
53
- } catch (e) {
54
- npmVer = 'NOT FOUND / ERROR';
55
- issues.push('Package not found on NPM registry');
56
- }
57
- } catch (e) {
58
- issues.push('Invalid package.json format');
59
- }
60
- } else {
61
- issues.push('Missing package.json');
62
- }
63
-
64
- // Version Match Check
65
- if (localVer !== 'N/A' && npmVer !== 'N/A' && localVer !== npmVer) {
66
- issues.push(`Version drift: Local (${localVer}) != NPM (${npmVer})`);
67
- remediationPlan.push(`[${item.name}] Sync version: Publish ${localVer} to NPM or update package.json`);
68
- }
69
-
70
- // Git Status Check
71
- if (fs.existsSync(repoDir)) {
72
- try {
73
- gitBranch = execSync(`git -C "${repoDir}" rev-parse --abbrev-ref HEAD 2>/dev/null`, { encoding: 'utf8' }).trim();
74
- const statusOut = execSync(`git -C "${repoDir}" status --porcelain 2>/dev/null`, { encoding: 'utf8' }).trim();
75
- gitDirty = statusOut.length > 0;
76
- if (gitDirty) {
77
- issues.push('Uncommitted local changes');
78
- remediationPlan.push(`[${item.name}] Commit or stash uncommitted changes on branch ${gitBranch}`);
79
- }
80
-
81
- const unpushed = execSync(`git -C "${repoDir}" log @{u}.. 2>/dev/null | grep "^commit" | wc -l`, { encoding: 'utf8' }).trim();
82
- unpushedCommits = parseInt(unpushed, 10) || 0;
83
- if (unpushedCommits > 0) {
84
- issues.push(`${unpushedCommits} unpushed commit(s)`);
85
- remediationPlan.push(`[${item.name}] Push ${unpushedCommits} commit(s) to remote origin/${gitBranch}`);
86
- }
87
- } catch (e) {
88
- issues.push('Git status check failed');
89
- }
90
-
91
- // GitHub Actions Status Check
92
- try {
93
- const ghOut = execSync(`gh run list --repo hybridlabor-api/${item.id} -L 1 --json conclusion,name,status 2>/dev/null`, { encoding: 'utf8' });
94
- const runs = JSON.parse(ghOut);
95
- if (runs.length > 0) {
96
- const r = runs[0];
97
- ciStatus = r.conclusion || r.status || 'unknown';
98
- ciWorkflow = r.name;
99
- if (ciStatus === 'failure' || ciStatus === 'cancelled') {
100
- issues.push(`Latest CI run failed: ${ciWorkflow}`);
101
- remediationPlan.push(`[${item.name}] Inspect failed GitHub Action workflow '${ciWorkflow}' via 'gh run view'`);
102
- }
103
- }
104
- } catch (e) {
105
- ciStatus = 'N/A';
106
- }
107
- } else {
108
- issues.push('Local directory does not exist');
109
- }
110
-
111
- if (issues.length > 0) totalIssues += issues.length;
112
-
113
- results.push({
114
- ...item,
115
- pkgName,
116
- localVer,
117
- npmVer,
118
- gitBranch,
119
- gitDirty,
120
- unpushedCommits,
121
- ciStatus,
122
- ciWorkflow,
123
- issues,
124
- status: issues.length === 0 ? 'HEALTHY' : 'WARNING'
125
- });
126
- }
127
-
128
- // Generate HTML Report
129
- const timestamp = new Date().toISOString().replace('T', ' ').substring(0, 19);
130
- const allHealthy = totalIssues === 0;
131
-
132
- const rowsHtml = results.map(r => {
133
- const statusBadge = r.status === 'HEALTHY'
134
- ? '<span style="background:#065f46; color:#34d399; padding:4px 10px; border-radius:999px; font-weight:700; font-size:12px;">HEALTHY</span>'
135
- : '<span style="background:#831843; color:#f43f5e; padding:4px 10px; border-radius:999px; font-weight:700; font-size:12px;">ATTENTION</span>';
136
-
137
- const ciBadge = r.ciStatus === 'success'
138
- ? '<span style="color:#10b981; font-weight:600;">✓ success</span>'
139
- : r.ciStatus === 'failure'
140
- ? '<span style="color:#ef4444; font-weight:700;">✗ failed</span>'
141
- : `<span style="color:#94a3b8;">${r.ciStatus}</span>`;
142
-
143
- const issuesList = r.issues.length === 0
144
- ? '<span style="color:#10b981;">No issues detected</span>'
145
- : r.issues.map(i => `<div style="color:#fbbf24; font-size:12px;">⚠️ ${i}</div>`).join('');
146
-
147
- return `
148
- <tr style="border-bottom:1px solid #23273c;">
149
- <td style="padding:16px 18px;">
150
- <div style="font-weight:700; color:#ffffff; font-size:15px;">${r.name}</div>
151
- <div style="font-family:monospace; color:#94a3b8; font-size:12px;">${r.pkgName}</div>
152
- </td>
153
- <td style="padding:16px 18px; font-family:monospace; color:#38bdf8;">${r.localVer}</td>
154
- <td style="padding:16px 18px; font-family:monospace; color:#a78bfa;">${r.npmVer}</td>
155
- <td style="padding:16px 18px;">${r.gitDirty ? '<span style="color:#ef4444;">Dirty</span>' : '<span style="color:#10b981;">Clean</span>'}</td>
156
- <td style="padding:16px 18px;">${ciBadge}</td>
157
- <td style="padding:16px 18px;">${statusBadge}</td>
158
- <td style="padding:16px 18px;">${issuesList}</td>
159
- </tr>
160
- `;
161
- }).join('');
162
-
163
- const planHtml = remediationPlan.length > 0
164
- ? `
165
- <div style="margin-top:32px; background:#1e1b4b; border:1px solid #4338ca; border-radius:12px; padding:24px;">
166
- <h3 style="color:#facc15; margin:0 0 12px 0;">🛠️ Automated Remediation Plan</h3>
167
- <ol style="margin:0; padding-left:20px; color:#cbd5e1; font-size:14px; line-height:1.8;">
168
- ${remediationPlan.map(p => `<li>${p}</li>`).join('')}
169
- </ol>
170
- </div>
171
- `
172
- : `
173
- <div style="margin-top:32px; background:#064e3b; border:1px solid #059669; border-radius:12px; padding:20px; text-align:center;">
174
- <h3 style="color:#34d399; margin:0 0 4px 0;">🎉 All Systems 100% Operational</h3>
175
- <p style="color:#a7f3d0; margin:0; font-size:14px;">All repositories, NPM registries, and CI/CD pipelines are fully synchronized and error-free.</p>
176
- </div>
177
- `;
178
-
179
- const fullHtml = `<!DOCTYPE html>
180
- <html lang="en">
181
- <head>
182
- <meta charset="UTF-8">
183
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
184
- <title>BDB Ecosystem Health Audit</title>
185
- <style>
186
- body { margin:0; padding:40px 20px; background:#090a0f; color:#f0f2f8; font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
187
- .container { max-width:1100px; margin:0 auto; background:#12141e; border:1px solid #23273c; border-radius:16px; padding:32px; box-shadow:0 20px 40px rgba(0,0,0,0.6); }
188
- table { width:100%; border-collapse:collapse; text-align:left; margin-top:24px; }
189
- th { padding:14px 18px; color:#94a3b8; font-size:12px; text-transform:uppercase; letter-spacing:0.05em; border-bottom:2px solid #23273c; background:#18132b; }
190
- </style>
191
- </head>
192
- <body>
193
- <div class="container">
194
- <div style="display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #23273c; padding-bottom:20px;">
195
- <div>
196
- <h1 style="margin:0 0 6px 0; color:#facc15; font-size:26px;">🛡️ BDB Ecosystem Health Audit</h1>
197
- <div style="color:#94a3b8; font-size:14px;">Live Verification &amp; Drift Monitor across Kernel + 7 Modules</div>
198
- </div>
199
- <div style="text-align:right;">
200
- <div style="font-size:12px; color:#64748b;">AUDIT TIMESTAMP</div>
201
- <div style="font-weight:700; color:#38bdf8; font-size:14px;">${timestamp} UTC</div>
202
- </div>
203
- </div>
204
-
205
- <table>
206
- <thead>
207
- <tr>
208
- <th>Repository</th>
209
- <th>Local</th>
210
- <th>NPM</th>
211
- <th>Git</th>
212
- <th>CI Pipeline</th>
213
- <th>Health</th>
214
- <th>Diagnostics</th>
215
- </tr>
216
- </thead>
217
- <tbody>
218
- ${rowsHtml}
219
- </tbody>
220
- </table>
221
-
222
- ${planHtml}
223
-
224
- <div style="margin-top:32px; text-align:center; color:#64748b; font-size:12px;">
225
- BDB Agent OS • Automated Health Monitor • Generated via <code>ecosystem-health-audit.js</code>
226
- </div>
227
- </div>
228
- </body>
229
- </html>`;
230
-
231
- fs.writeFileSync(REPORT_FILE, fullHtml, 'utf8');
232
- console.log(`✅ HTML Report generated at: ${REPORT_FILE}`);
233
-
234
- // Auto-open in browser if requested or by default
235
- if (process.argv.includes('--open') || !process.argv.includes('--no-open')) {
236
- try {
237
- execSync(`open "${REPORT_FILE}"`);
238
- console.log('🌐 Opened report in Chrome/Default Browser.');
239
- } catch (e) {}
240
- }
241
-
242
- // Print Terminal Summary
243
- console.log('\n================ AUDIT SUMMARY ================');
244
- results.forEach(r => {
245
- const icon = r.status === 'HEALTHY' ? '🟢' : '🔴';
246
- console.log(`${icon} ${r.name.padEnd(28)} | Local: ${r.localVer.padEnd(6)} | NPM: ${r.npmVer.padEnd(6)} | Git: ${r.gitDirty ? 'Dirty' : 'Clean'} | CI: ${r.ciStatus}`);
247
- });
248
- console.log('================================================\n');
249
-
250
- if (remediationPlan.length > 0) {
251
- console.log('⚠️ Remediation Steps:');
252
- remediationPlan.forEach((p, idx) => console.log(` ${idx + 1}. ${p}`));
253
- process.exit(1);
254
- } else {
255
- console.log('✨ All modules are clean and green!');
256
- process.exit(0);
257
- }
@@ -1,49 +0,0 @@
1
- ---
2
- name: bdb-dev-os-skill
3
- description: Use when internal maintainer rules for the BDB Agent OS Ecosystem (Tim & Noah only).
4
- category: bdb-core
5
- ---
6
-
7
- # BDB Ecosystem Release Rules
8
-
9
- 1. **Private by Default:** All GitHub repositories are private. Distribution is strictly via NPM Tarballs.
10
- 2. **Version Pinning:** The installer must pin exact, validated semantic versions. No `latest`.
11
- 3. **Cross-Commit Awareness:** Always audit ecosystem modules when the Kernel updates, and vice versa.
12
- 4. **Sub-Modul Liste:**
13
- - `bdb-synapse`
14
- - `memB`
15
- - `heimdall-token-saver`
16
- - `bdb-os-agent-workspace`
17
- - `creator-extension`
18
- - `bdb-os-remote`
19
-
20
- ## 1. Overview
21
- This skill provides domain-specific logic and rules for its respective BDB pipeline component to ensure standardization across multi-agent workflows.
22
-
23
- ## 2. When to Use
24
- - Use when specifically requested by the user or triggered by an orchestration agent.
25
- - Use when the current task aligns with the skill's domain.
26
- - Exclude when standard tool execution is sufficient.
27
-
28
- ## 3. Core Process
29
- 1. Read the provided context and ensure preconditions are met.
30
- 2. Run the required script or tool and confirm the state change.
31
- 3. Verify exit codes, file modifications, or DB counts to guarantee success before reporting completion.
32
-
33
- ## 4. Common Rationalizations
34
- | Rationalization | Reality |
35
- |---|---|
36
- | "The code change was small, so I skipped updating OpenWiki docs." | Every state change must be reflected in the relevant system records. |
37
- | "The ingest script exited without an error, so the memB index must be updated." | Silent failures happen; explicit verification of the side effect is mandatory. |
38
- | "I'll let the /startcycle proceed without a defined rollback path." | Proceeding without a rollback path corrupts the workflow integrity and safety. |
39
- | "I trust the cached agent registry instead of rescanning after a skill change." | Caches stale out quickly; explicit rescans prevent ghost failures. |
40
-
41
- ## 5. Red Flags
42
- - Bypassing the verification step after a script execution.
43
- - Proceeding to the next pipeline stage without confirming the previous stage's side effects.
44
- - Ignoring domain-specific constraints listed in this skill.
45
-
46
- ## 6. Verification
47
- - [ ] Verified script exit codes are explicitly checked.
48
- - [ ] Confirmed target files or database records reflect the expected change.
49
- - [ ] Ensured no silent failures were ignored before reporting success.
@@ -1,11 +0,0 @@
1
- {
2
- "name": "@hybridlabor-api/bdb-dev-os-skill",
3
- "version": "1.0.0",
4
- "private": true,
5
- "publishConfig": {
6
- "access": "restricted"
7
- },
8
- "engines": {
9
- "bdb-synapse": "^1.2.4"
10
- }
11
- }