@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.
Files changed (305) 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.md +573 -0
  20. package/README.de.md +0 -8
  21. package/README.md +0 -8
  22. package/README.pt.md +0 -8
  23. package/assets/brand/ao-ant-mark.svg +91 -0
  24. package/assets/brand/bdb-core-mark.svg +34 -0
  25. package/assets/brand/heimdall-guardian-mark.svg +16 -0
  26. package/assets/brand/memb-crystal-mark.svg +18 -0
  27. package/bin/aos-config.mjs +89 -0
  28. package/bin/aos-dashboard.mjs +608 -0
  29. package/bin/aos-uninstall.mjs +227 -0
  30. package/docs/sessions/audit-2026-09-14-silent-failures.md +114 -0
  31. package/docs/skills_table.md +0 -3
  32. package/installer.js +387 -237
  33. package/mcps/RhinoMCP/cc-plugin/.claude/settings.json +10 -0
  34. package/mcps/after-effects-mcp/build/index.js +840 -0
  35. package/mcps/after-effects-mcp/build/scripts/applyEffect.jsx +153 -0
  36. package/mcps/after-effects-mcp/build/scripts/applyEffectTemplate.jsx +218 -0
  37. package/mcps/after-effects-mcp/build/scripts/createComposition.jsx +71 -0
  38. package/mcps/after-effects-mcp/build/scripts/createShapeLayer.jsx +147 -0
  39. package/mcps/after-effects-mcp/build/scripts/createSolidLayer.jsx +114 -0
  40. package/mcps/after-effects-mcp/build/scripts/createTextLayer.jsx +115 -0
  41. package/mcps/after-effects-mcp/build/scripts/getLayerInfo.jsx +192 -0
  42. package/mcps/after-effects-mcp/build/scripts/getProjectInfo.jsx +90 -0
  43. package/mcps/after-effects-mcp/build/scripts/listCompositions.jsx +50 -0
  44. package/mcps/after-effects-mcp/build/scripts/mcp-bridge-auto.jsx +1773 -0
  45. package/mcps/after-effects-mcp/build/scripts/setLayerProperties.jsx +160 -0
  46. package/mcps/computer-use-mcp/dist/client.d.ts +150 -0
  47. package/mcps/computer-use-mcp/dist/client.js +136 -0
  48. package/mcps/computer-use-mcp/dist/entrypoint.d.ts +16 -0
  49. package/mcps/computer-use-mcp/dist/entrypoint.js +26 -0
  50. package/mcps/computer-use-mcp/dist/native.d.ts +212 -0
  51. package/mcps/computer-use-mcp/dist/native.js +50 -0
  52. package/mcps/computer-use-mcp/dist/server.d.ts +32 -0
  53. package/mcps/computer-use-mcp/dist/server.js +342 -0
  54. package/mcps/computer-use-mcp/dist/session.d.ts +101 -0
  55. package/mcps/computer-use-mcp/dist/session.js +2372 -0
  56. package/package.json +13 -4
  57. package/skills/global_config/aos-project-init/SKILL.md +97 -130
  58. package/skills/global_config/aos-project-init/assets/openwikiignore.template +62 -0
  59. package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +38 -1
  60. package/skills/global_config/aos-setup/SKILL.md +98 -8
  61. package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +21 -2
  62. package/skills/global_config/ask-tim/SKILL.md +2 -7
  63. package/skills/global_config/openwiki-skill/scripts/openwiki_daemon.py +65 -12
  64. package/bin/setup-saas.mjs +0 -792
  65. package/mcps/blender-mcp-server/.dockerignore +0 -19
  66. package/mcps/blender-mcp-server/.github/workflows/ci.yml +0 -67
  67. package/mcps/blender-mcp-server/.github/workflows/publish-pypi.yml +0 -54
  68. package/mcps/blender-mcp-server/CHANGELOG.md +0 -64
  69. package/mcps/blender-mcp-server/CONTRIBUTING.md +0 -107
  70. package/mcps/blender-mcp-server/Dockerfile +0 -19
  71. package/mcps/blender-mcp-server/LICENSE +0 -21
  72. package/mcps/blender-mcp-server/README.md +0 -409
  73. package/mcps/blender-mcp-server/addon/__init__.py +0 -1440
  74. package/mcps/blender-mcp-server/addon/models.py +0 -223
  75. package/mcps/blender-mcp-server/pyproject.toml +0 -120
  76. package/mcps/blender-mcp-server/scripts/blender_bridge_request.py +0 -71
  77. package/mcps/blender-mcp-server/scripts/blender_create_test_cube.py +0 -49
  78. package/mcps/blender-mcp-server/scripts/blender_scene_info.py +0 -38
  79. package/mcps/blender-mcp-server/scripts/build_addon_zip.sh +0 -29
  80. package/mcps/blender-mcp-server/scripts/demos/README.md +0 -186
  81. package/mcps/blender-mcp-server/scripts/demos/dam_break_scene.py +0 -276
  82. package/mcps/blender-mcp-server/scripts/demos/open_dam_break_gui.py +0 -33
  83. package/mcps/blender-mcp-server/scripts/demos/pipe_movement_study.py +0 -518
  84. package/mcps/blender-mcp-server/scripts/demos/pipe_pressure_failure_scene.py +0 -806
  85. package/mcps/blender-mcp-server/scripts/demos/procedural_dam_break_scene.py +0 -600
  86. package/mcps/blender-mcp-server/scripts/demos/run_dam_break.py +0 -510
  87. package/mcps/blender-mcp-server/scripts/launch_blender_gui.py +0 -41
  88. package/mcps/blender-mcp-server/scripts/library/README.md +0 -64
  89. package/mcps/blender-mcp-server/scripts/library/apply_transforms.py +0 -46
  90. package/mcps/blender-mcp-server/scripts/library/camera.py +0 -51
  91. package/mcps/blender-mcp-server/scripts/library/collections.py +0 -65
  92. package/mcps/blender-mcp-server/scripts/library/create_mesh.py +0 -41
  93. package/mcps/blender-mcp-server/scripts/library/effector.py +0 -48
  94. package/mcps/blender-mcp-server/scripts/library/fluid_domain.py +0 -80
  95. package/mcps/blender-mcp-server/scripts/library/fluid_inflow.py +0 -98
  96. package/mcps/blender-mcp-server/scripts/library/frame_range.py +0 -35
  97. package/mcps/blender-mcp-server/scripts/library/keyframes.py +0 -59
  98. package/mcps/blender-mcp-server/scripts/library/rigid_body.py +0 -52
  99. package/mcps/blender-mcp-server/scripts/library/save_blend.py +0 -40
  100. package/mcps/blender-mcp-server/scripts/server_start.sh +0 -26
  101. package/mcps/blender-mcp-server/src/blender_mcp_server/__init__.py +0 -3
  102. package/mcps/blender-mcp-server/src/blender_mcp_server/headless.py +0 -330
  103. package/mcps/blender-mcp-server/src/blender_mcp_server/server.py +0 -606
  104. package/mcps/davinci-mcp-professional/.bandit +0 -35
  105. package/mcps/davinci-mcp-professional/.claude/commands/security-review.md +0 -191
  106. package/mcps/davinci-mcp-professional/.claude/settings.json +0 -1
  107. package/mcps/davinci-mcp-professional/.editorconfig +0 -27
  108. package/mcps/davinci-mcp-professional/.gitattributes +0 -207
  109. package/mcps/davinci-mcp-professional/.github/CODEOWNERS +0 -2
  110. package/mcps/davinci-mcp-professional/.github/ISSUE_TEMPLATE/bug_report.md +0 -33
  111. package/mcps/davinci-mcp-professional/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  112. package/mcps/davinci-mcp-professional/.github/PULL_REQUEST_TEMPLATE.md +0 -20
  113. package/mcps/davinci-mcp-professional/.github/SECURITY.md +0 -97
  114. package/mcps/davinci-mcp-professional/.github/dependabot.yml +0 -27
  115. package/mcps/davinci-mcp-professional/.github/workflows/ci.yml +0 -39
  116. package/mcps/davinci-mcp-professional/ATTRIBUTION.md +0 -4
  117. package/mcps/davinci-mcp-professional/AUTHORS.md +0 -9
  118. package/mcps/davinci-mcp-professional/BUGS.md +0 -55
  119. package/mcps/davinci-mcp-professional/CLAUDE.md +0 -229
  120. package/mcps/davinci-mcp-professional/CONTRIBUTING.md +0 -51
  121. package/mcps/davinci-mcp-professional/COPYING.md +0 -228
  122. package/mcps/davinci-mcp-professional/Doxyfile +0 -379
  123. package/mcps/davinci-mcp-professional/README.md +0 -143
  124. package/mcps/davinci-mcp-professional/SECURITY.md +0 -40
  125. package/mcps/davinci-mcp-professional/USING.md +0 -301
  126. package/mcps/davinci-mcp-professional/VERSION.md +0 -13
  127. package/mcps/davinci-mcp-professional/build.py +0 -169
  128. package/mcps/davinci-mcp-professional/claude_desktop_config_template.json +0 -11
  129. package/mcps/davinci-mcp-professional/hooks/ci-check.sh +0 -29
  130. package/mcps/davinci-mcp-professional/hooks/pre-push +0 -46
  131. package/mcps/davinci-mcp-professional/main.py +0 -40
  132. package/mcps/davinci-mcp-professional/mcp_server.py +0 -30
  133. package/mcps/davinci-mcp-professional/pyproject.toml +0 -115
  134. package/mcps/davinci-mcp-professional/security_audit.py +0 -379
  135. package/mcps/davinci-mcp-professional/src/davinci_mcp/__init__.py +0 -19
  136. package/mcps/davinci-mcp-professional/src/davinci_mcp/cli.py +0 -138
  137. package/mcps/davinci-mcp-professional/src/davinci_mcp/resolve_client.py +0 -342
  138. package/mcps/davinci-mcp-professional/src/davinci_mcp/resources/__init__.py +0 -60
  139. package/mcps/davinci-mcp-professional/src/davinci_mcp/server.py +0 -185
  140. package/mcps/davinci-mcp-professional/src/davinci_mcp/tools/__init__.py +0 -146
  141. package/mcps/davinci-mcp-professional/src/davinci_mcp/types.py +0 -125
  142. package/mcps/davinci-mcp-professional/src/davinci_mcp/utils/__init__.py +0 -19
  143. package/mcps/davinci-mcp-professional/src/davinci_mcp/utils/platform.py +0 -239
  144. package/mcps/davinci-mcp-professional/test.py +0 -186
  145. package/mcps/davinci-mcp-professional/uv.lock +0 -2073
  146. package/mcps/davinci-resolve-mcp/.claude/skills/media-analysis.md +0 -44
  147. package/mcps/davinci-resolve-mcp/.clinerules +0 -17
  148. package/mcps/davinci-resolve-mcp/.cursorrules +0 -17
  149. package/mcps/davinci-resolve-mcp/.github/copilot-instructions.md +0 -17
  150. package/mcps/davinci-resolve-mcp/.github/workflows/npm-publish.yml +0 -109
  151. package/mcps/davinci-resolve-mcp/.windsurfrules +0 -17
  152. package/mcps/davinci-resolve-mcp/AGENTS.md +0 -114
  153. package/mcps/davinci-resolve-mcp/CHANGELOG.md +0 -2648
  154. package/mcps/davinci-resolve-mcp/CLAUDE.md +0 -15
  155. package/mcps/davinci-resolve-mcp/LICENSE +0 -21
  156. package/mcps/davinci-resolve-mcp/README.md +0 -173
  157. package/mcps/davinci-resolve-mcp/SECURITY.md +0 -53
  158. package/mcps/davinci-resolve-mcp/bin/davinci-resolve-mcp.mjs +0 -450
  159. package/mcps/davinci-resolve-mcp/examples/README.md +0 -53
  160. package/mcps/davinci-resolve-mcp/examples/markers/README.md +0 -81
  161. package/mcps/davinci-resolve-mcp/examples/media/README.md +0 -94
  162. package/mcps/davinci-resolve-mcp/examples/timeline/README.md +0 -98
  163. package/mcps/davinci-resolve-mcp/install.py +0 -1687
  164. package/mcps/davinci-resolve-mcp/package.json +0 -52
  165. package/mcps/davinci-resolve-mcp/release-notes/v2.22.0.md +0 -51
  166. package/mcps/davinci-resolve-mcp/release-notes/v2.23.0.md +0 -51
  167. package/mcps/davinci-resolve-mcp/release-notes/v2.23.1.md +0 -35
  168. package/mcps/davinci-resolve-mcp/release-notes/v2.24.1.md +0 -32
  169. package/mcps/davinci-resolve-mcp/scripts/audit_api_parity.py +0 -275
  170. package/mcps/davinci-resolve-mcp/scripts/audit_readwrite_symmetry.py +0 -80
  171. package/mcps/davinci-resolve-mcp/scripts/doctor.py +0 -227
  172. package/mcps/davinci-resolve-mcp/scripts/gen_api_limitations.py +0 -144
  173. package/mcps/davinci-resolve-mcp/scripts/live_media_analysis_polish_probe.py +0 -65
  174. package/mcps/davinci-resolve-mcp/scripts/measure_bridge_cost.py +0 -65
  175. package/mcps/davinci-resolve-mcp/scripts/regen_panel_screenshots.py +0 -76
  176. package/mcps/davinci-resolve-mcp/src/__init__.py +0 -3
  177. package/mcps/davinci-resolve-mcp/src/analysis_dashboard.py +0 -15505
  178. package/mcps/davinci-resolve-mcp/src/batch_cli.py +0 -540
  179. package/mcps/davinci-resolve-mcp/src/control_panel.py +0 -13
  180. package/mcps/davinci-resolve-mcp/src/granular/__init__.py +0 -17
  181. package/mcps/davinci-resolve-mcp/src/granular/common.py +0 -741
  182. package/mcps/davinci-resolve-mcp/src/granular/folder.py +0 -420
  183. package/mcps/davinci-resolve-mcp/src/granular/gallery.py +0 -306
  184. package/mcps/davinci-resolve-mcp/src/granular/graph.py +0 -309
  185. package/mcps/davinci-resolve-mcp/src/granular/media_pool.py +0 -679
  186. package/mcps/davinci-resolve-mcp/src/granular/media_pool_item.py +0 -1020
  187. package/mcps/davinci-resolve-mcp/src/granular/media_storage.py +0 -179
  188. package/mcps/davinci-resolve-mcp/src/granular/project.py +0 -1654
  189. package/mcps/davinci-resolve-mcp/src/granular/resolve_control.py +0 -538
  190. package/mcps/davinci-resolve-mcp/src/granular/timeline.py +0 -1075
  191. package/mcps/davinci-resolve-mcp/src/granular/timeline_item.py +0 -2251
  192. package/mcps/davinci-resolve-mcp/src/resolve_mcp_server.py +0 -43
  193. package/mcps/davinci-resolve-mcp/src/server.py +0 -24116
  194. package/mcps/davinci-resolve-mcp/src/utils/__init__.py +0 -3
  195. package/mcps/davinci-resolve-mcp/src/utils/actor_identity.py +0 -46
  196. package/mcps/davinci-resolve-mcp/src/utils/analysis_caps.py +0 -678
  197. package/mcps/davinci-resolve-mcp/src/utils/analysis_memory.py +0 -755
  198. package/mcps/davinci-resolve-mcp/src/utils/analysis_runs.py +0 -307
  199. package/mcps/davinci-resolve-mcp/src/utils/analysis_store.py +0 -945
  200. package/mcps/davinci-resolve-mcp/src/utils/api_truth.py +0 -525
  201. package/mcps/davinci-resolve-mcp/src/utils/app_control.py +0 -319
  202. package/mcps/davinci-resolve-mcp/src/utils/audio_fairlight_live_probe.py +0 -263
  203. package/mcps/davinci-resolve-mcp/src/utils/brain_edits.py +0 -387
  204. package/mcps/davinci-resolve-mcp/src/utils/bridge_metrics.py +0 -76
  205. package/mcps/davinci-resolve-mcp/src/utils/cdl.py +0 -20
  206. package/mcps/davinci-resolve-mcp/src/utils/clip_query.py +0 -85
  207. package/mcps/davinci-resolve-mcp/src/utils/cloud_operations.py +0 -192
  208. package/mcps/davinci-resolve-mcp/src/utils/color_grade_live_probe.py +0 -444
  209. package/mcps/davinci-resolve-mcp/src/utils/contracts.py +0 -102
  210. package/mcps/davinci-resolve-mcp/src/utils/cut_ir.py +0 -115
  211. package/mcps/davinci-resolve-mcp/src/utils/dctl_templates.py +0 -368
  212. package/mcps/davinci-resolve-mcp/src/utils/deep_vision.py +0 -643
  213. package/mcps/davinci-resolve-mcp/src/utils/destructive_hook.py +0 -606
  214. package/mcps/davinci-resolve-mcp/src/utils/edit_engine.py +0 -737
  215. package/mcps/davinci-resolve-mcp/src/utils/embeddings.py +0 -922
  216. package/mcps/davinci-resolve-mcp/src/utils/entities.py +0 -579
  217. package/mcps/davinci-resolve-mcp/src/utils/extension_authoring_live_probe.py +0 -292
  218. package/mcps/davinci-resolve-mcp/src/utils/failure_tracker.py +0 -119
  219. package/mcps/davinci-resolve-mcp/src/utils/fuse_templates.py +0 -1968
  220. package/mcps/davinci-resolve-mcp/src/utils/fusion_composition_live_probe.py +0 -284
  221. package/mcps/davinci-resolve-mcp/src/utils/fusion_group_settings.py +0 -334
  222. package/mcps/davinci-resolve-mcp/src/utils/layout_presets.py +0 -333
  223. package/mcps/davinci-resolve-mcp/src/utils/mcp_stdio.py +0 -32
  224. package/mcps/davinci-resolve-mcp/src/utils/mcp_transport.py +0 -128
  225. package/mcps/davinci-resolve-mcp/src/utils/media_analysis.py +0 -7690
  226. package/mcps/davinci-resolve-mcp/src/utils/media_analysis_jobs.py +0 -805
  227. package/mcps/davinci-resolve-mcp/src/utils/media_pool_changes.py +0 -121
  228. package/mcps/davinci-resolve-mcp/src/utils/media_pool_ingest_live_probe.py +0 -592
  229. package/mcps/davinci-resolve-mcp/src/utils/multicam.py +0 -393
  230. package/mcps/davinci-resolve-mcp/src/utils/object_inspection.py +0 -301
  231. package/mcps/davinci-resolve-mcp/src/utils/page_lock.py +0 -75
  232. package/mcps/davinci-resolve-mcp/src/utils/platform.py +0 -157
  233. package/mcps/davinci-resolve-mcp/src/utils/proc.py +0 -26
  234. package/mcps/davinci-resolve-mcp/src/utils/project_cleanup.py +0 -73
  235. package/mcps/davinci-resolve-mcp/src/utils/project_lifecycle_live_probe.py +0 -376
  236. package/mcps/davinci-resolve-mcp/src/utils/project_lint.py +0 -131
  237. package/mcps/davinci-resolve-mcp/src/utils/project_properties.py +0 -601
  238. package/mcps/davinci-resolve-mcp/src/utils/project_spec.py +0 -459
  239. package/mcps/davinci-resolve-mcp/src/utils/readback.py +0 -91
  240. package/mcps/davinci-resolve-mcp/src/utils/render_deliver_live_probe.py +0 -384
  241. package/mcps/davinci-resolve-mcp/src/utils/resolve_ai_governance.py +0 -214
  242. package/mcps/davinci-resolve-mcp/src/utils/resolve_ai_ledger.py +0 -244
  243. package/mcps/davinci-resolve-mcp/src/utils/resolve_busy.py +0 -171
  244. package/mcps/davinci-resolve-mcp/src/utils/resolve_connection.py +0 -77
  245. package/mcps/davinci-resolve-mcp/src/utils/review_annotation_live_probe.py +0 -352
  246. package/mcps/davinci-resolve-mcp/src/utils/script_templates.py +0 -1193
  247. package/mcps/davinci-resolve-mcp/src/utils/shot_relationships.py +0 -544
  248. package/mcps/davinci-resolve-mcp/src/utils/structural_diff.py +0 -175
  249. package/mcps/davinci-resolve-mcp/src/utils/sync_detection.py +0 -889
  250. package/mcps/davinci-resolve-mcp/src/utils/timeline_brain_db.py +0 -826
  251. package/mcps/davinci-resolve-mcp/src/utils/timeline_conform_live_probe.py +0 -280
  252. package/mcps/davinci-resolve-mcp/src/utils/timeline_kernel_live_probe.py +0 -1092
  253. package/mcps/davinci-resolve-mcp/src/utils/timeline_kernel_probe.py +0 -185
  254. package/mcps/davinci-resolve-mcp/src/utils/timeline_title_text.py +0 -87
  255. package/mcps/davinci-resolve-mcp/src/utils/timeline_versioning.py +0 -730
  256. package/mcps/davinci-resolve-mcp/src/utils/update_check.py +0 -685
  257. package/mcps/vectorworks-mcp/.dockerignore +0 -8
  258. package/mcps/vectorworks-mcp/Dockerfile +0 -28
  259. package/mcps/vectorworks-mcp/README.md +0 -156
  260. package/mcps/vectorworks-mcp/app/__init__.py +0 -2
  261. package/mcps/vectorworks-mcp/app/api.py +0 -52
  262. package/mcps/vectorworks-mcp/app/chunking.py +0 -56
  263. package/mcps/vectorworks-mcp/app/config.py +0 -29
  264. package/mcps/vectorworks-mcp/app/embeddings.py +0 -28
  265. package/mcps/vectorworks-mcp/app/indexer.py +0 -106
  266. package/mcps/vectorworks-mcp/app/main.py +0 -33
  267. package/mcps/vectorworks-mcp/app/mcp_server.py +0 -71
  268. package/mcps/vectorworks-mcp/app/search.py +0 -54
  269. package/mcps/vectorworks-mcp/app/utils.py +0 -14
  270. package/mcps/vectorworks-mcp/data/.gitkeep +0 -1
  271. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_PluginScript.htm +0 -95
  272. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_ScriptEditor.htm +0 -266
  273. package/mcps/vectorworks-mcp/data/vw-app-help/VW2022_Scripting.htm +0 -106
  274. package/mcps/vectorworks-mcp/data/vw-app-help/VW2023_CreatingScriptedPlugins.htm +0 -327
  275. package/mcps/vectorworks-mcp/data/vw-app-help/VW2024_RunningScripts.htm +0 -116
  276. package/mcps/vectorworks-mcp/data/vw-devwiki/VS_Function_Reference_category.html +0 -2129
  277. package/mcps/vectorworks-mcp/data/vw-jp-ref/ObjectsSymbols.html +0 -2035
  278. package/mcps/vectorworks-mcp/data/vw-jp-ref/ScriptFunctionReference.html +0 -29
  279. package/mcps/vectorworks-mcp/design.md +0 -57
  280. package/mcps/vectorworks-mcp/docker-compose.yml +0 -18
  281. package/mcps/vectorworks-mcp/index/.gitkeep +0 -1
  282. package/mcps/vectorworks-mcp/index/meta.jsonl +0 -3956
  283. package/mcps/vectorworks-mcp/index/vw.faiss +0 -0
  284. package/mcps/vectorworks-mcp/requirements.txt +0 -10
  285. package/mcps/vectorworks-mcp/scripts/fetch_docs_minimal.sh +0 -84
  286. package/mcps/vectorworks-mcp/scripts/fetch_github_vectorworks.sh +0 -85
  287. package/mcps/vectorworks-mcp/templates/index.html +0 -40
  288. package/scripts/ecosystem-health-audit.js +0 -257
  289. package/skills/bdb-dev-os-skill/SKILL.md +0 -49
  290. package/skills/bdb-dev-os-skill/package.json +0 -11
  291. package/skills/bdbsaastraining/SKILL.md +0 -316
  292. package/skills/bdbsaastraining/references/exam-pool.md +0 -313
  293. package/skills/bdbsaastraining/references/interaction-modes.md +0 -94
  294. package/skills/bdbsaastraining/references/track-a-ai-agent.md +0 -111
  295. package/skills/bdbsaastraining/references/track-b-wordpress.md +0 -111
  296. package/skills/bdbsaastraining/references/track-c-mailserver.md +0 -107
  297. package/skills/bdbsaastraining/references/track-d-debian.md +0 -109
  298. package/skills/bdbsaastraining/references/track-e-custom.md +0 -83
  299. package/skills/bdbsaastraining/scripts/build_profile.py +0 -529
  300. package/skills/bdbsaastraining/scripts/generate_certificate.py +0 -161
  301. package/skills/bdbsaastraining/scripts/preflight_check.sh +0 -150
  302. package/skills/bdbsaastraining/templates/certificate_template.html +0 -508
  303. package/skills/global_config/bdb-ecosystem-health/SKILL.md +0 -68
  304. package/skills/global_config/bdbsaas-ops/SKILL.md +0 -16
  305. 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
- }