@hybridlabor-api/aos 4.2.0 → 4.4.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 (1098) hide show
  1. package/.claude/hooks/memb-inject.mjs +121 -0
  2. package/.claude/settings.json +10 -0
  3. package/CLAUDE.md +37 -84
  4. package/CODEX.md +31 -12
  5. package/GEMINI.md +51 -58
  6. package/README.de.md +13 -14
  7. package/README.md +13 -14
  8. package/README.pt.md +13 -14
  9. package/THIRD_PARTY_NOTICES.md +54 -0
  10. package/docs/skills_table.md +0 -2
  11. package/installer.js +29 -16
  12. package/package.json +21 -2
  13. package/scripts/validate-skills.mjs +402 -0
  14. package/skills/basic/godmode-engineering/SKILL.md +1 -1
  15. package/skills/basic/godmode-shipping/SKILL.md +1 -1
  16. package/skills/github-repo/SKILL.md +1 -0
  17. package/skills/global_config/agent-tool-builder/SKILL.md +5 -4
  18. package/skills/global_config/ai-product/SKILL.md +3 -2
  19. package/skills/global_config/aos-project-init/SKILL.md +194 -0
  20. package/skills/global_config/aos-project-init/assets/AGENTS.template.md +56 -0
  21. package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +137 -0
  22. package/skills/global_config/aos-setup/SKILL.md +222 -0
  23. package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +262 -0
  24. package/skills/global_config/ask-tim/SKILL.md +4 -2
  25. package/skills/global_config/{bdb-adobe-suite-mcp.md → bdb-adobe-suite-mcp/SKILL.md} +1 -0
  26. package/skills/global_config/{bdb-after-effects-mcp.md → bdb-after-effects-mcp/SKILL.md} +1 -0
  27. package/skills/global_config/{bdb-blender-mcp.md → bdb-blender-mcp/SKILL.md} +1 -0
  28. package/skills/global_config/{bdb-computer-use-mcp.md → bdb-computer-use-mcp/SKILL.md} +1 -0
  29. package/skills/global_config/{bdb-davinci-mcp.md → bdb-davinci-mcp/SKILL.md} +1 -0
  30. package/skills/global_config/bdb-ecosystem-health/SKILL.md +3 -3
  31. package/skills/global_config/{bdb-grandma3-mcp.md → bdb-grandma3-mcp/SKILL.md} +1 -0
  32. package/skills/global_config/{bdb-memb-mcp.md → bdb-memb-mcp/SKILL.md} +10 -0
  33. package/skills/global_config/{bdb-resolume-mcp.md → bdb-resolume-mcp/SKILL.md} +1 -0
  34. package/skills/global_config/{bdb-rhino-mcp.md → bdb-rhino-mcp/SKILL.md} +1 -0
  35. package/skills/global_config/{bdb-touchdesigner-mcp.md → bdb-touchdesigner-mcp/SKILL.md} +1 -0
  36. package/skills/global_config/{bdb-unreal-mcp.md → bdb-unreal-mcp/SKILL.md} +1 -0
  37. package/skills/global_config/{bdb-vectorworks-mcp.md → bdb-vectorworks-mcp/SKILL.md} +1 -0
  38. package/skills/global_config/bdbsaashost/SKILL.md +50 -50
  39. package/skills/global_config/browser-automation/SKILL.md +4 -4
  40. package/skills/global_config/crewai/SKILL.md +3 -2
  41. package/skills/global_config/debugger/SKILL.md +3 -6
  42. package/skills/global_config/git-advanced-workflows/SKILL.md +0 -1
  43. package/skills/global_config/github-actions-templates/SKILL.md +0 -2
  44. package/skills/global_config/neon-postgres/SKILL.md +3 -2
  45. package/skills/global_config/playwright-skill/SKILL.md +1 -1
  46. package/skills/global_config/posix-shell-pro/SKILL.md +0 -1
  47. package/skills/global_config/postgres-best-practices/SKILL.md +1 -1
  48. package/skills/global_config/prompt-engineering-patterns/SKILL.md +0 -1
  49. package/skills/global_config/rag-engineer/SKILL.md +4 -3
  50. package/skills/global_config/react-best-practices/SKILL.md +1 -1
  51. package/skills/global_config/remotion/SKILL.md +0 -1
  52. package/skills/global_config/seo/SKILL.md +6 -41
  53. package/skills/global_config/systematic-debugging/CREATION-LOG.md +1 -1
  54. package/skills/global_config/systematic-debugging/root-cause-tracing.md +1 -1
  55. package/skills/global_config/turborepo-caching/SKILL.md +0 -1
  56. package/skills/global_config/using-neon/SKILL.md +1 -47
  57. package/skills/global_config/vector-database-engineer/SKILL.md +0 -1
  58. package/skills/global_config/web-artifacts-builder/LICENSE.txt +1 -1
  59. package/skills/global_config/web-artifacts-builder/SKILL.md +1 -1
  60. package/skills/global_config/webapp-testing/LICENSE.txt +1 -1
  61. package/skills/global_config/webapp-testing/SKILL.md +1 -1
  62. package/assets/Give_AI_Agents_Control_of_Creative_Software.mp4 +0 -0
  63. package/mcps/RhinoMCP/connector/icon-dark.png +0 -3
  64. package/mcps/RhinoMCP/connector/icon-light.png +0 -3
  65. package/mcps/RhinoMCP/connector/screenshots/casa-rhino.png +0 -3
  66. package/mcps/RhinoMCP/docs/assets/css/custom.css +0 -640
  67. package/mcps/RhinoMCP/docs/content/_index.md +0 -88
  68. package/mcps/RhinoMCP/docs/content/docs/_index.md +0 -35
  69. package/mcps/RhinoMCP/docs/content/docs/advanced/_index.md +0 -37
  70. package/mcps/RhinoMCP/docs/content/docs/advanced/bulk-file-processing.md +0 -70
  71. package/mcps/RhinoMCP/docs/content/docs/advanced/headless-render-farm.md +0 -60
  72. package/mcps/RhinoMCP/docs/content/docs/advanced/make-this-parametric.md +0 -56
  73. package/mcps/RhinoMCP/docs/content/docs/advanced/sketch-to-model.md +0 -58
  74. package/mcps/RhinoMCP/docs/content/docs/advanced/upgrade-gh1-to-gh2.md +0 -51
  75. package/mcps/RhinoMCP/docs/content/docs/developers/_index.md +0 -39
  76. package/mcps/RhinoMCP/docs/content/docs/developers/dev-troubleshooting.md +0 -15
  77. package/mcps/RhinoMCP/docs/content/docs/developers/plugin-prototyping.md +0 -56
  78. package/mcps/RhinoMCP/docs/content/docs/developers/upgrade-gh1-to-gh2.md +0 -98
  79. package/mcps/RhinoMCP/docs/content/docs/developers/upgrade-to-netcore.md +0 -53
  80. package/mcps/RhinoMCP/docs/content/docs/developers/windows-to-cross-platform.md +0 -58
  81. package/mcps/RhinoMCP/docs/content/docs/developers/wpf-to-eto.md +0 -64
  82. package/mcps/RhinoMCP/docs/content/docs/getting-started/_index.md +0 -45
  83. package/mcps/RhinoMCP/docs/content/docs/getting-started/cc-plugin.md +0 -116
  84. package/mcps/RhinoMCP/docs/content/docs/getting-started/connector.md +0 -65
  85. package/mcps/RhinoMCP/docs/content/docs/getting-started/copilot.md +0 -61
  86. package/mcps/RhinoMCP/docs/content/docs/getting-started/lm-studio.md +0 -62
  87. package/mcps/RhinoMCP/docs/content/docs/troubleshooting.md +0 -66
  88. package/mcps/RhinoMCP/docs/content/docs/try-it-out/_index.md +0 -39
  89. package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/_index.md +0 -25
  90. package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/build-grasshopper.md +0 -26
  91. package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/generate-variations.md +0 -25
  92. package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/inspect-and-report.md +0 -26
  93. package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/layers.md +0 -28
  94. package/mcps/RhinoMCP/docs/content/docs/try-it-out/examples/model-from-image.md +0 -27
  95. package/mcps/RhinoMCP/docs/content/docs/try-it-out/recipes.md +0 -178
  96. package/mcps/RhinoMCP/docs/data/icons.yaml +0 -3
  97. package/mcps/RhinoMCP/docs/go.mod +0 -5
  98. package/mcps/RhinoMCP/docs/go.sum +0 -4
  99. package/mcps/RhinoMCP/docs/hugo.yaml +0 -78
  100. package/mcps/RhinoMCP/docs/layouts/_partials/sidebar.html +0 -333
  101. package/mcps/RhinoMCP/docs/layouts/docs/list.html +0 -29
  102. package/mcps/RhinoMCP/docs/layouts/docs/single.html +0 -29
  103. package/mcps/RhinoMCP/docs/layouts/partials/custom/head-end.html +0 -3
  104. package/mcps/RhinoMCP/docs/layouts/shortcodes/download-asset.html +0 -21
  105. package/mcps/RhinoMCP/docs/layouts/shortcodes/github.html +0 -21
  106. package/mcps/RhinoMCP/docs/layouts/shortcodes/prompt.html +0 -23
  107. package/mcps/RhinoMCP/docs/layouts/shortcodes/yak.html +0 -21
  108. package/mcps/RhinoMCP/docs/static/developer/sel-arc.png +0 -3
  109. package/mcps/RhinoMCP/docs/static/developer/voxelizer-gh2-conversion.png +0 -3
  110. package/mcps/RhinoMCP/docs/static/examples/ai-kettle.png +0 -3
  111. package/mcps/RhinoMCP/docs/static/examples/casa_rhino_shapes.png +0 -3
  112. package/mcps/RhinoMCP/docs/static/examples/kettle.jpg +0 -0
  113. package/mcps/RhinoMCP/docs/static/examples/raygun-layers.png +0 -3
  114. package/mcps/RhinoMCP/docs/static/examples/raygun-thumbnail.png +0 -3
  115. package/mcps/RhinoMCP/docs/static/examples/twisty-tower-gh.png +0 -3
  116. package/mcps/RhinoMCP/docs/static/favicon.svg +0 -26
  117. package/mcps/RhinoMCP/docs/static/images/landing-dark.png +0 -3
  118. package/mcps/RhinoMCP/docs/static/images/landing.png +0 -3
  119. package/mcps/RhinoMCP/docs/static/images/logo-dark.svg +0 -26
  120. package/mcps/RhinoMCP/docs/static/images/logo.svg +0 -26
  121. package/mcps/RhinoMCP/docs/static/local-llm.png +0 -3
  122. package/mcps/RhinoMCP/rhino/plugin/icon.png +0 -3
  123. package/mcps/RhinoMCP/tests/Acp.Tests/Acp.Tests.csproj +0 -29
  124. package/mcps/RhinoMCP/tests/Acp.Tests/CoverageTests.cs +0 -52
  125. package/mcps/RhinoMCP/tests/Acp.Tests/Fakes.cs +0 -90
  126. package/mcps/RhinoMCP/tests/Acp.Tests/GlobalUsings.cs +0 -1
  127. package/mcps/RhinoMCP/tests/Acp.Tests/LoopbackTests.cs +0 -59
  128. package/mcps/RhinoMCP/tests/Acp.Tests/RobustnessTests.cs +0 -124
  129. package/mcps/RhinoMCP/tests/Acp.Tests/SerializationTests.cs +0 -94
  130. package/mcps/RhinoMCP/tests/Integration.Tests/AdoptedSlotTests.cs +0 -136
  131. package/mcps/RhinoMCP/tests/Integration.Tests/AutoSpawnNotificationTests.cs +0 -63
  132. package/mcps/RhinoMCP/tests/Integration.Tests/CloseSlotAgentTests.cs +0 -56
  133. package/mcps/RhinoMCP/tests/Integration.Tests/CloseSlotTests.cs +0 -37
  134. package/mcps/RhinoMCP/tests/Integration.Tests/DocLifecycleTests.cs +0 -42
  135. package/mcps/RhinoMCP/tests/Integration.Tests/GlobalUsings.cs +0 -3
  136. package/mcps/RhinoMCP/tests/Integration.Tests/GrasshopperStartTests.cs +0 -56
  137. package/mcps/RhinoMCP/tests/Integration.Tests/Harness/ReturnResult.cs +0 -28
  138. package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RhinoMcpFixture.cs +0 -90
  139. package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RhinoMcpRouter.cs +0 -111
  140. package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RhinoRouterPaths.cs +0 -83
  141. package/mcps/RhinoMCP/tests/Integration.Tests/Harness/RouterFixture.cs +0 -50
  142. package/mcps/RhinoMCP/tests/Integration.Tests/Integration.Tests.csproj +0 -31
  143. package/mcps/RhinoMCP/tests/Integration.Tests/ListSlotsShapeTests.cs +0 -55
  144. package/mcps/RhinoMCP/tests/Integration.Tests/ListSlotsTests.cs +0 -19
  145. package/mcps/RhinoMCP/tests/Integration.Tests/MacSharedProcessTests.cs +0 -87
  146. package/mcps/RhinoMCP/tests/Integration.Tests/MultiRouterTests.cs +0 -74
  147. package/mcps/RhinoMCP/tests/Integration.Tests/PluginToolTests.cs +0 -115
  148. package/mcps/RhinoMCP/tests/Integration.Tests/README.md +0 -35
  149. package/mcps/RhinoMCP/tests/Integration.Tests/RhinoCrashHandlingTests.cs +0 -107
  150. package/mcps/RhinoMCP/tests/Integration.Tests/SlotReapingTests.cs +0 -84
  151. package/mcps/RhinoMCP/tests/Integration.Tests/SpawnErrorTests.cs +0 -52
  152. package/mcps/RhinoMCP/tests/Integration.Tests/SpawnSlotTests.cs +0 -66
  153. package/mcps/RhinoMCP/tests/Integration.Tests/ToolDispatchBySlotTests.cs +0 -53
  154. package/mcps/RhinoMCP/tests/Integration.Tests/WindowsProcessIsolationTests.cs +0 -62
  155. package/mcps/RhinoMCP/tests/Router.Tests/CodegenTests.cs +0 -125
  156. package/mcps/RhinoMCP/tests/Router.Tests/ReturnResultTests.cs +0 -90
  157. package/mcps/RhinoMCP/tests/Router.Tests/RhinoCrashReportFinderTests.cs +0 -207
  158. package/mcps/RhinoMCP/tests/Router.Tests/RhinoLocatorOverrideTests.cs +0 -61
  159. package/mcps/RhinoMCP/tests/Router.Tests/RhinoLocatorTests.cs +0 -38
  160. package/mcps/RhinoMCP/tests/Router.Tests/RhinoManagerResolutionTests.cs +0 -151
  161. package/mcps/RhinoMCP/tests/Router.Tests/Router.Tests.csproj +0 -31
  162. package/mcps/RhinoMCP/tests/Router.Tests/RouterConfigTests.cs +0 -92
  163. package/mcps/RhinoMCP/tests/Router.Tests/SlotStoreLaunchingAbsenceTests.cs +0 -70
  164. package/mcps/RhinoMCP/tests/Router.Tests/SlotStorePortReservationTests.cs +0 -92
  165. package/mcps/RhinoMCP/tests/Router.Tests/SpawnDiagnosticsTests.cs +0 -100
  166. package/mcps/RhinoMCP/tests/Router.Tests/SpawnSlotToolDiagnoseTests.cs +0 -66
  167. package/mcps/RhinoMCP/tests/Server.Tests/McpConfigEditTests.cs +0 -223
  168. package/mcps/RhinoMCP/tests/Server.Tests/ParameterBinderTests.cs +0 -208
  169. package/mcps/RhinoMCP/tests/Server.Tests/ProtocolTests.cs +0 -200
  170. package/mcps/RhinoMCP/tests/Server.Tests/ResourceRegistryTests.cs +0 -218
  171. package/mcps/RhinoMCP/tests/Server.Tests/ResultUnwrapperTests.cs +0 -53
  172. package/mcps/RhinoMCP/tests/Server.Tests/SchemaBuilderTests.cs +0 -166
  173. package/mcps/RhinoMCP/tests/Server.Tests/Server.Tests.csproj +0 -40
  174. package/mcps/RhinoMCP/tests/StreamJson.Tests/AcpMessageMapperTests.cs +0 -82
  175. package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentPromptsTests.cs +0 -56
  176. package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentRegistryOverlayTests.cs +0 -88
  177. package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentRegistryResolutionTests.cs +0 -152
  178. package/mcps/RhinoMCP/tests/StreamJson.Tests/AgentRunnerTurnTests.cs +0 -149
  179. package/mcps/RhinoMCP/tests/StreamJson.Tests/ClaudeStreamJsonParserTests.cs +0 -118
  180. package/mcps/RhinoMCP/tests/StreamJson.Tests/CodexStreamJsonParserTests.cs +0 -100
  181. package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationStorePruneTests.cs +0 -94
  182. package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationStoreRoundTripTests.cs +0 -70
  183. package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationTests.cs +0 -153
  184. package/mcps/RhinoMCP/tests/StreamJson.Tests/ConversationUsageTests.cs +0 -56
  185. package/mcps/RhinoMCP/tests/StreamJson.Tests/GlobalUsings.cs +0 -12
  186. package/mcps/RhinoMCP/tests/StreamJson.Tests/Shims.cs +0 -93
  187. package/mcps/RhinoMCP/tests/StreamJson.Tests/StreamJson.Tests.csproj +0 -56
  188. package/mcps/RhinoMCP/tests/StreamJson.Tests/StreamJsonAgentLoopbackTests.cs +0 -75
  189. package/mcps/RhinoMCP/tests/StreamJson.Tests/StreamJsonParserEdgeCaseTests.cs +0 -128
  190. package/mcps/RhinoMCP/tests/StreamJson.Tests/TokenUsageTests.cs +0 -40
  191. package/mcps/RhinoMCP/tests/launcher/launcher.test.mjs +0 -461
  192. package/mcps/RhinoMCP/tests/launcher/package.json +0 -8
  193. package/mcps/ae-mcp/docs/demo.png +0 -0
  194. package/mcps/ae-mcp/docs/demo1.png +0 -0
  195. package/mcps/ae-mcp/docs/demo3.png +0 -0
  196. package/mcps/ae-mcp/docs/video.png +0 -0
  197. package/mcps/after-effects-mcp/assets/MCP Auto Bridge.png +0 -0
  198. package/mcps/bdb-remoteos-mcp/tests/__init__.py +0 -1
  199. package/mcps/bdb-remoteos-mcp/tests/mock_incus.py +0 -60
  200. package/mcps/bdb-remoteos-mcp/tests/test_mcp_server.py +0 -27
  201. package/mcps/bdb-remoteos-mcp/tests/test_security_redteam.py +0 -349
  202. package/mcps/bdb-remoteos-mcp/tests/test_webhook.py +0 -61
  203. package/mcps/blender-mcp/assets/addon-instructions.png +0 -0
  204. package/mcps/blender-mcp/assets/hammer-icon.png +0 -0
  205. package/mcps/blender-mcp-server/docs/architecture.md +0 -209
  206. package/mcps/blender-mcp-server/docs/images/demo_render.png +0 -0
  207. package/mcps/blender-mcp-server/docs/python-execute-design.md +0 -515
  208. package/mcps/blender-mcp-server/tests/__init__.py +0 -0
  209. package/mcps/blender-mcp-server/tests/test_addon.py +0 -953
  210. package/mcps/blender-mcp-server/tests/test_server.py +0 -364
  211. package/mcps/davinci-mcp-professional/docs/README.md +0 -67
  212. package/mcps/davinci-mcp-professional/docs/html/README_8md.html +0 -113
  213. package/mcps/davinci-mcp-professional/docs/html/____init_____8py.html +0 -126
  214. package/mcps/davinci-mcp-professional/docs/html/____init_____8py.js +0 -6
  215. package/mcps/davinci-mcp-professional/docs/html/____init_____8py_source.html +0 -125
  216. package/mcps/davinci-mcp-professional/docs/html/__version_8py.html +0 -130
  217. package/mcps/davinci-mcp-professional/docs/html/__version_8py.js +0 -9
  218. package/mcps/davinci-mcp-professional/docs/html/__version_8py_source.html +0 -130
  219. package/mcps/davinci-mcp-professional/docs/html/annotated.html +0 -123
  220. package/mcps/davinci-mcp-professional/docs/html/annotated_dup.js +0 -21
  221. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveClient-members.html +0 -131
  222. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveClient.html +0 -706
  223. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveClient.js +0 -26
  224. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError.html +0 -143
  225. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__coll__graph.map +0 -7
  226. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__coll__graph.md5 +0 -1
  227. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__coll__graph.png +0 -0
  228. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__inherit__graph.map +0 -7
  229. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__inherit__graph.md5 +0 -1
  230. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveConnectionError__inherit__graph.png +0 -0
  231. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError.html +0 -143
  232. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__coll__graph.map +0 -5
  233. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__coll__graph.md5 +0 -1
  234. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__coll__graph.png +0 -0
  235. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__inherit__graph.map +0 -9
  236. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__inherit__graph.md5 +0 -1
  237. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveError__inherit__graph.png +0 -0
  238. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError.html +0 -143
  239. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__coll__graph.map +0 -7
  240. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__coll__graph.md5 +0 -1
  241. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__coll__graph.png +0 -0
  242. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__inherit__graph.map +0 -7
  243. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__inherit__graph.md5 +0 -1
  244. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1resolve__client_1_1DaVinciResolveNotRunningError__inherit__graph.png +0 -0
  245. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1server_1_1DaVinciMCPServer-members.html +0 -115
  246. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1server_1_1DaVinciMCPServer.html +0 -325
  247. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1server_1_1DaVinciMCPServer.js +0 -10
  248. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool-members.html +0 -110
  249. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool.html +0 -188
  250. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool.js +0 -5
  251. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__coll__graph.map +0 -5
  252. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__coll__graph.md5 +0 -1
  253. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__coll__graph.png +0 -0
  254. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__inherit__graph.map +0 -5
  255. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__inherit__graph.md5 +0 -1
  256. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciMediaPool__inherit__graph.png +0 -0
  257. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject-members.html +0 -113
  258. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject.html +0 -248
  259. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject.js +0 -8
  260. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager-members.html +0 -113
  261. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager.html +0 -252
  262. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager.js +0 -8
  263. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__coll__graph.map +0 -5
  264. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__coll__graph.md5 +0 -1
  265. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__coll__graph.png +0 -0
  266. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__inherit__graph.map +0 -5
  267. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__inherit__graph.md5 +0 -1
  268. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProjectManager__inherit__graph.png +0 -0
  269. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__coll__graph.map +0 -5
  270. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__coll__graph.md5 +0 -1
  271. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__coll__graph.png +0 -0
  272. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__inherit__graph.map +0 -5
  273. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__inherit__graph.md5 +0 -1
  274. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciProject__inherit__graph.png +0 -0
  275. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp-members.html +0 -115
  276. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp.html +0 -288
  277. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp.js +0 -10
  278. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__coll__graph.map +0 -5
  279. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__coll__graph.md5 +0 -1
  280. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__coll__graph.png +0 -0
  281. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__inherit__graph.map +0 -5
  282. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__inherit__graph.md5 +0 -1
  283. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciResolveApp__inherit__graph.png +0 -0
  284. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline-members.html +0 -110
  285. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline.html +0 -188
  286. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline.js +0 -5
  287. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__coll__graph.map +0 -5
  288. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__coll__graph.md5 +0 -1
  289. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__coll__graph.png +0 -0
  290. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__inherit__graph.map +0 -5
  291. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__inherit__graph.md5 +0 -1
  292. package/mcps/davinci-mcp-professional/docs/html/classdavinci__mcp_1_1types_1_1DaVinciTimeline__inherit__graph.png +0 -0
  293. package/mcps/davinci-mcp-professional/docs/html/classes.html +0 -111
  294. package/mcps/davinci-mcp-professional/docs/html/cli_8py.html +0 -135
  295. package/mcps/davinci-mcp-professional/docs/html/cli_8py.js +0 -11
  296. package/mcps/davinci-mcp-professional/docs/html/cli_8py_source.html +0 -249
  297. package/mcps/davinci-mcp-professional/docs/html/clipboard.js +0 -61
  298. package/mcps/davinci-mcp-professional/docs/html/cookie.js +0 -58
  299. package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe.html +0 -127
  300. package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe.js +0 -4
  301. package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe_dep.map +0 -4
  302. package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe_dep.md5 +0 -1
  303. package/mcps/davinci-mcp-professional/docs/html/dir_1a1069c9a5427270b3ccd00c87d405fe_dep.png +0 -0
  304. package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603.html +0 -128
  305. package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603.js +0 -5
  306. package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603_dep.map +0 -4
  307. package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603_dep.md5 +0 -1
  308. package/mcps/davinci-mcp-professional/docs/html/dir_6a5346f4427b2e9426ba2ccfd9f0b603_dep.png +0 -0
  309. package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef.html +0 -127
  310. package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef.js +0 -4
  311. package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef_dep.map +0 -4
  312. package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef_dep.md5 +0 -1
  313. package/mcps/davinci-mcp-professional/docs/html/dir_77c8a4d399bde190a30252eceec792ef_dep.png +0 -0
  314. package/mcps/davinci-mcp-professional/docs/html/dir_f94b29b73815c35a8351f4403bcc4f74.html +0 -129
  315. package/mcps/davinci-mcp-professional/docs/html/dir_f94b29b73815c35a8351f4403bcc4f74.js +0 -12
  316. package/mcps/davinci-mcp-professional/docs/html/doxygen.css +0 -2540
  317. package/mcps/davinci-mcp-professional/docs/html/doxygen.svg +0 -28
  318. package/mcps/davinci-mcp-professional/docs/html/doxygen_crawl.html +0 -170
  319. package/mcps/davinci-mcp-professional/docs/html/dynsections.js +0 -198
  320. package/mcps/davinci-mcp-professional/docs/html/files.html +0 -123
  321. package/mcps/davinci-mcp-professional/docs/html/files_dup.js +0 -4
  322. package/mcps/davinci-mcp-professional/docs/html/functions.html +0 -190
  323. package/mcps/davinci-mcp-professional/docs/html/functions_func.html +0 -184
  324. package/mcps/davinci-mcp-professional/docs/html/functions_vars.html +0 -110
  325. package/mcps/davinci-mcp-professional/docs/html/graph_legend.html +0 -165
  326. package/mcps/davinci-mcp-professional/docs/html/graph_legend.md5 +0 -1
  327. package/mcps/davinci-mcp-professional/docs/html/graph_legend.png +0 -0
  328. package/mcps/davinci-mcp-professional/docs/html/hierarchy.html +0 -123
  329. package/mcps/davinci-mcp-professional/docs/html/hierarchy.js +0 -18
  330. package/mcps/davinci-mcp-professional/docs/html/index.html +0 -200
  331. package/mcps/davinci-mcp-professional/docs/html/index.js +0 -9
  332. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_0.map +0 -3
  333. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_0.md5 +0 -1
  334. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_0.png +0 -0
  335. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_1.map +0 -3
  336. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_1.md5 +0 -1
  337. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_1.png +0 -0
  338. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_2.map +0 -9
  339. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_2.md5 +0 -1
  340. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_2.png +0 -0
  341. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_3.map +0 -13
  342. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_3.md5 +0 -1
  343. package/mcps/davinci-mcp-professional/docs/html/inherit_graph_3.png +0 -0
  344. package/mcps/davinci-mcp-professional/docs/html/inherits.html +0 -145
  345. package/mcps/davinci-mcp-professional/docs/html/jquery.js +0 -204
  346. package/mcps/davinci-mcp-professional/docs/html/menu.js +0 -131
  347. package/mcps/davinci-mcp-professional/docs/html/menudata.js +0 -73
  348. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp.html +0 -209
  349. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp.js +0 -34
  350. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1__version.html +0 -260
  351. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1cli.html +0 -303
  352. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1resolve__client.html +0 -147
  353. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1resolve__client.js +0 -8
  354. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1resources.html +0 -140
  355. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1server.html +0 -144
  356. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1server.js +0 -5
  357. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1tools.html +0 -140
  358. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1types.html +0 -216
  359. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1types.js +0 -13
  360. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1utils.html +0 -155
  361. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1utils.js +0 -11
  362. package/mcps/davinci-mcp-professional/docs/html/namespacedavinci__mcp_1_1utils_1_1platform.html +0 -232
  363. package/mcps/davinci-mcp-professional/docs/html/namespacemembers.html +0 -173
  364. package/mcps/davinci-mcp-professional/docs/html/namespacemembers_func.html +0 -114
  365. package/mcps/davinci-mcp-professional/docs/html/namespacemembers_vars.html +0 -121
  366. package/mcps/davinci-mcp-professional/docs/html/namespaces.html +0 -119
  367. package/mcps/davinci-mcp-professional/docs/html/namespaces_dup.js +0 -4
  368. package/mcps/davinci-mcp-professional/docs/html/navtree.css +0 -327
  369. package/mcps/davinci-mcp-professional/docs/html/navtree.js +0 -901
  370. package/mcps/davinci-mcp-professional/docs/html/navtreedata.js +0 -68
  371. package/mcps/davinci-mcp-professional/docs/html/navtreeindex0.js +0 -212
  372. package/mcps/davinci-mcp-professional/docs/html/platform_8py.html +0 -130
  373. package/mcps/davinci-mcp-professional/docs/html/platform_8py.js +0 -8
  374. package/mcps/davinci-mcp-professional/docs/html/platform_8py_source.html +0 -245
  375. package/mcps/davinci-mcp-professional/docs/html/resolve__client_8py.html +0 -132
  376. package/mcps/davinci-mcp-professional/docs/html/resolve__client_8py.js +0 -8
  377. package/mcps/davinci-mcp-professional/docs/html/resolve__client_8py_source.html +0 -501
  378. package/mcps/davinci-mcp-professional/docs/html/resources_2____init_____8py.html +0 -125
  379. package/mcps/davinci-mcp-professional/docs/html/resources_2____init_____8py.js +0 -4
  380. package/mcps/davinci-mcp-professional/docs/html/resources_2____init_____8py_source.html +0 -169
  381. package/mcps/davinci-mcp-professional/docs/html/search/all_0.js +0 -22
  382. package/mcps/davinci-mcp-professional/docs/html/search/all_1.js +0 -4
  383. package/mcps/davinci-mcp-professional/docs/html/search/all_10.js +0 -4
  384. package/mcps/davinci-mcp-professional/docs/html/search/all_11.js +0 -4
  385. package/mcps/davinci-mcp-professional/docs/html/search/all_12.js +0 -4
  386. package/mcps/davinci-mcp-professional/docs/html/search/all_13.js +0 -4
  387. package/mcps/davinci-mcp-professional/docs/html/search/all_2.js +0 -4
  388. package/mcps/davinci-mcp-professional/docs/html/search/all_3.js +0 -15
  389. package/mcps/davinci-mcp-professional/docs/html/search/all_4.js +0 -26
  390. package/mcps/davinci-mcp-professional/docs/html/search/all_5.js +0 -4
  391. package/mcps/davinci-mcp-professional/docs/html/search/all_6.js +0 -6
  392. package/mcps/davinci-mcp-professional/docs/html/search/all_7.js +0 -25
  393. package/mcps/davinci-mcp-professional/docs/html/search/all_8.js +0 -7
  394. package/mcps/davinci-mcp-professional/docs/html/search/all_9.js +0 -9
  395. package/mcps/davinci-mcp-professional/docs/html/search/all_a.js +0 -6
  396. package/mcps/davinci-mcp-professional/docs/html/search/all_b.js +0 -6
  397. package/mcps/davinci-mcp-professional/docs/html/search/all_c.js +0 -9
  398. package/mcps/davinci-mcp-professional/docs/html/search/all_d.js +0 -10
  399. package/mcps/davinci-mcp-professional/docs/html/search/all_e.js +0 -11
  400. package/mcps/davinci-mcp-professional/docs/html/search/all_f.js +0 -5
  401. package/mcps/davinci-mcp-professional/docs/html/search/classes_0.js +0 -13
  402. package/mcps/davinci-mcp-professional/docs/html/search/files_0.js +0 -5
  403. package/mcps/davinci-mcp-professional/docs/html/search/files_1.js +0 -4
  404. package/mcps/davinci-mcp-professional/docs/html/search/files_2.js +0 -4
  405. package/mcps/davinci-mcp-professional/docs/html/search/files_3.js +0 -5
  406. package/mcps/davinci-mcp-professional/docs/html/search/files_4.js +0 -4
  407. package/mcps/davinci-mcp-professional/docs/html/search/files_5.js +0 -4
  408. package/mcps/davinci-mcp-professional/docs/html/search/functions_0.js +0 -9
  409. package/mcps/davinci-mcp-professional/docs/html/search/functions_1.js +0 -4
  410. package/mcps/davinci-mcp-professional/docs/html/search/functions_2.js +0 -10
  411. package/mcps/davinci-mcp-professional/docs/html/search/functions_3.js +0 -4
  412. package/mcps/davinci-mcp-professional/docs/html/search/functions_4.js +0 -25
  413. package/mcps/davinci-mcp-professional/docs/html/search/functions_5.js +0 -6
  414. package/mcps/davinci-mcp-professional/docs/html/search/functions_6.js +0 -7
  415. package/mcps/davinci-mcp-professional/docs/html/search/functions_7.js +0 -4
  416. package/mcps/davinci-mcp-professional/docs/html/search/functions_8.js +0 -5
  417. package/mcps/davinci-mcp-professional/docs/html/search/functions_9.js +0 -4
  418. package/mcps/davinci-mcp-professional/docs/html/search/functions_a.js +0 -4
  419. package/mcps/davinci-mcp-professional/docs/html/search/functions_b.js +0 -6
  420. package/mcps/davinci-mcp-professional/docs/html/search/namespaces_0.js +0 -13
  421. package/mcps/davinci-mcp-professional/docs/html/search/pages_0.js +0 -4
  422. package/mcps/davinci-mcp-professional/docs/html/search/pages_1.js +0 -6
  423. package/mcps/davinci-mcp-professional/docs/html/search/pages_2.js +0 -5
  424. package/mcps/davinci-mcp-professional/docs/html/search/pages_3.js +0 -4
  425. package/mcps/davinci-mcp-professional/docs/html/search/pages_4.js +0 -5
  426. package/mcps/davinci-mcp-professional/docs/html/search/pages_5.js +0 -4
  427. package/mcps/davinci-mcp-professional/docs/html/search/pages_6.js +0 -4
  428. package/mcps/davinci-mcp-professional/docs/html/search/pages_7.js +0 -4
  429. package/mcps/davinci-mcp-professional/docs/html/search/pages_8.js +0 -5
  430. package/mcps/davinci-mcp-professional/docs/html/search/pages_9.js +0 -5
  431. package/mcps/davinci-mcp-professional/docs/html/search/pages_a.js +0 -6
  432. package/mcps/davinci-mcp-professional/docs/html/search/pages_b.js +0 -4
  433. package/mcps/davinci-mcp-professional/docs/html/search/pages_c.js +0 -4
  434. package/mcps/davinci-mcp-professional/docs/html/search/pages_d.js +0 -4
  435. package/mcps/davinci-mcp-professional/docs/html/search/search.css +0 -377
  436. package/mcps/davinci-mcp-professional/docs/html/search/search.js +0 -708
  437. package/mcps/davinci-mcp-professional/docs/html/search/searchdata.js +0 -33
  438. package/mcps/davinci-mcp-professional/docs/html/search/variables_0.js +0 -14
  439. package/mcps/davinci-mcp-professional/docs/html/search/variables_1.js +0 -4
  440. package/mcps/davinci-mcp-professional/docs/html/search/variables_2.js +0 -4
  441. package/mcps/davinci-mcp-professional/docs/html/search/variables_3.js +0 -5
  442. package/mcps/davinci-mcp-professional/docs/html/search/variables_4.js +0 -4
  443. package/mcps/davinci-mcp-professional/docs/html/search/variables_5.js +0 -5
  444. package/mcps/davinci-mcp-professional/docs/html/search/variables_6.js +0 -5
  445. package/mcps/davinci-mcp-professional/docs/html/search/variables_7.js +0 -4
  446. package/mcps/davinci-mcp-professional/docs/html/search/variables_8.js +0 -4
  447. package/mcps/davinci-mcp-professional/docs/html/search/variables_9.js +0 -4
  448. package/mcps/davinci-mcp-professional/docs/html/server_8py.html +0 -129
  449. package/mcps/davinci-mcp-professional/docs/html/server_8py.js +0 -5
  450. package/mcps/davinci-mcp-professional/docs/html/server_8py_source.html +0 -318
  451. package/mcps/davinci-mcp-professional/docs/html/tabs.css +0 -1
  452. package/mcps/davinci-mcp-professional/docs/html/tools_2____init_____8py.html +0 -125
  453. package/mcps/davinci-mcp-professional/docs/html/tools_2____init_____8py.js +0 -4
  454. package/mcps/davinci-mcp-professional/docs/html/tools_2____init_____8py_source.html +0 -253
  455. package/mcps/davinci-mcp-professional/docs/html/types_8py.html +0 -137
  456. package/mcps/davinci-mcp-professional/docs/html/types_8py.js +0 -13
  457. package/mcps/davinci-mcp-professional/docs/html/types_8py_source.html +0 -309
  458. package/mcps/davinci-mcp-professional/docs/html/utils_2____init_____8py.html +0 -125
  459. package/mcps/davinci-mcp-professional/docs/html/utils_2____init_____8py.js +0 -4
  460. package/mcps/davinci-mcp-professional/docs/html/utils_2____init_____8py_source.html +0 -123
  461. package/mcps/davinci-mcp-professional/tests/README.md +0 -49
  462. package/mcps/davinci-mcp-professional/tests/__init__.py +0 -1
  463. package/mcps/davinci-mcp-professional/tests/conftest.py +0 -75
  464. package/mcps/davinci-mcp-professional/tests/test_security.py +0 -251
  465. package/mcps/davinci-resolve-mcp/docs/README.md +0 -56
  466. package/mcps/davinci-resolve-mcp/docs/SKILL.md +0 -1635
  467. package/mcps/davinci-resolve-mcp/docs/authoring/fuse-dctl-authoring.md +0 -242
  468. package/mcps/davinci-resolve-mcp/docs/authoring/script-plugin-authoring.md +0 -195
  469. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/README.md +0 -152
  470. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/category-patterns.md +0 -780
  471. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/controls.md +0 -259
  472. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/format.md +0 -568
  473. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/gotchas.md +0 -168
  474. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/references/thumbnails.md +0 -106
  475. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Blur.setting +0 -46
  476. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Color Tint.setting +0 -78
  477. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Cross Dissolve.setting +0 -57
  478. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Fade Title.setting +0 -111
  479. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Glow.setting +0 -55
  480. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Gradient.setting +0 -52
  481. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Iris.setting +0 -127
  482. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Lower Third.setting +0 -192
  483. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Noise.setting +0 -74
  484. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Solid Color.setting +0 -55
  485. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Title.setting +0 -105
  486. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Vignette.setting +0 -98
  487. package/mcps/davinci-resolve-mcp/docs/authoring/setting-files/templates/MCP Test Wipe.setting +0 -98
  488. package/mcps/davinci-resolve-mcp/docs/contributing.md +0 -82
  489. package/mcps/davinci-resolve-mcp/docs/guides/color-decision-guide.md +0 -427
  490. package/mcps/davinci-resolve-mcp/docs/guides/control-panel.md +0 -234
  491. package/mcps/davinci-resolve-mcp/docs/guides/editorial-decision-guide.md +0 -165
  492. package/mcps/davinci-resolve-mcp/docs/guides/media-analysis-guide.md +0 -763
  493. package/mcps/davinci-resolve-mcp/docs/guides/multicam-setup-guide.md +0 -138
  494. package/mcps/davinci-resolve-mcp/docs/images/control-panel/01-overview.png +0 -0
  495. package/mcps/davinci-resolve-mcp/docs/images/control-panel/02-review-bin-grid.png +0 -0
  496. package/mcps/davinci-resolve-mcp/docs/images/control-panel/03-clip-detail.png +0 -0
  497. package/mcps/davinci-resolve-mcp/docs/images/control-panel/04-transcript.png +0 -0
  498. package/mcps/davinci-resolve-mcp/docs/images/control-panel/05-shot-detail.png +0 -0
  499. package/mcps/davinci-resolve-mcp/docs/images/control-panel/06-inventory.png +0 -0
  500. package/mcps/davinci-resolve-mcp/docs/images/control-panel/07-diagnostics-resolve.png +0 -0
  501. package/mcps/davinci-resolve-mcp/docs/images/control-panel/08-preferences-analysis.png +0 -0
  502. package/mcps/davinci-resolve-mcp/docs/images/control-panel/09-ai-console.png +0 -0
  503. package/mcps/davinci-resolve-mcp/docs/images/control-panel/10-history.png +0 -0
  504. package/mcps/davinci-resolve-mcp/docs/images/control-panel/11-edit-plans.png +0 -0
  505. package/mcps/davinci-resolve-mcp/docs/install.md +0 -208
  506. package/mcps/davinci-resolve-mcp/docs/integrations/workflow-integrations.md +0 -120
  507. package/mcps/davinci-resolve-mcp/docs/kernels/README.md +0 -28
  508. package/mcps/davinci-resolve-mcp/docs/kernels/audio-fairlight-kernel.md +0 -86
  509. package/mcps/davinci-resolve-mcp/docs/kernels/color-grade-kernel.md +0 -103
  510. package/mcps/davinci-resolve-mcp/docs/kernels/extension-authoring-kernel.md +0 -101
  511. package/mcps/davinci-resolve-mcp/docs/kernels/fusion-composition-kernel.md +0 -121
  512. package/mcps/davinci-resolve-mcp/docs/kernels/media-pool-ingest-kernel.md +0 -147
  513. package/mcps/davinci-resolve-mcp/docs/kernels/project-lifecycle-kernel.md +0 -120
  514. package/mcps/davinci-resolve-mcp/docs/kernels/render-deliver-kernel.md +0 -92
  515. package/mcps/davinci-resolve-mcp/docs/kernels/review-annotation-kernel.md +0 -110
  516. package/mcps/davinci-resolve-mcp/docs/kernels/timeline-conform-interchange-kernel.md +0 -102
  517. package/mcps/davinci-resolve-mcp/docs/kernels/timeline-edit-kernel.md +0 -189
  518. package/mcps/davinci-resolve-mcp/docs/notes/codec-plugin-notes.md +0 -136
  519. package/mcps/davinci-resolve-mcp/docs/notes/dctl-notes.md +0 -234
  520. package/mcps/davinci-resolve-mcp/docs/notes/fusion-template-notes.md +0 -136
  521. package/mcps/davinci-resolve-mcp/docs/notes/lut-notes.md +0 -136
  522. package/mcps/davinci-resolve-mcp/docs/notes/openfx-notes.md +0 -120
  523. package/mcps/davinci-resolve-mcp/docs/process/release-process.md +0 -180
  524. package/mcps/davinci-resolve-mcp/docs/reference/api-coverage.md +0 -521
  525. package/mcps/davinci-resolve-mcp/docs/reference/api-limitations.md +0 -259
  526. package/mcps/davinci-resolve-mcp/docs/reference/readwrite-symmetry.md +0 -25
  527. package/mcps/davinci-resolve-mcp/docs/reference/resolve_scripting_api.txt +0 -1024
  528. package/mcps/davinci-resolve-mcp/tests/_error_envelope_helpers.py +0 -35
  529. package/mcps/davinci-resolve-mcp/tests/benchmark_server.py +0 -270
  530. package/mcps/davinci-resolve-mcp/tests/create_test_timeline.py +0 -177
  531. package/mcps/davinci-resolve-mcp/tests/live_api_gap_verification.py +0 -274
  532. package/mcps/davinci-resolve-mcp/tests/live_audio_fairlight_validation.py +0 -77
  533. package/mcps/davinci-resolve-mcp/tests/live_auto_sync_settings_check.py +0 -76
  534. package/mcps/davinci-resolve-mcp/tests/live_color_grade_validation.py +0 -89
  535. package/mcps/davinci-resolve-mcp/tests/live_delete_governance_check.py +0 -71
  536. package/mcps/davinci-resolve-mcp/tests/live_duplicate_clips_validation.py +0 -831
  537. package/mcps/davinci-resolve-mcp/tests/live_edit_engine_validation.py +0 -277
  538. package/mcps/davinci-resolve-mcp/tests/live_enum_settings_check.py +0 -89
  539. package/mcps/davinci-resolve-mcp/tests/live_extension_authoring_validation.py +0 -77
  540. package/mcps/davinci-resolve-mcp/tests/live_fuse_diagnose.py +0 -230
  541. package/mcps/davinci-resolve-mcp/tests/live_fuse_smoke.py +0 -250
  542. package/mcps/davinci-resolve-mcp/tests/live_fusion_composition_validation.py +0 -82
  543. package/mcps/davinci-resolve-mcp/tests/live_fusion_keyframe_validation.py +0 -116
  544. package/mcps/davinci-resolve-mcp/tests/live_fusion_mask_title_validation.py +0 -286
  545. package/mcps/davinci-resolve-mcp/tests/live_marker_validation.py +0 -439
  546. package/mcps/davinci-resolve-mcp/tests/live_media_pool_ingest_validation.py +0 -98
  547. package/mcps/davinci-resolve-mcp/tests/live_metadata_field_inventory_validation.py +0 -379
  548. package/mcps/davinci-resolve-mcp/tests/live_metadata_publish_validation.py +0 -192
  549. package/mcps/davinci-resolve-mcp/tests/live_multicam_setup_validation.py +0 -198
  550. package/mcps/davinci-resolve-mcp/tests/live_path_probe.py +0 -119
  551. package/mcps/davinci-resolve-mcp/tests/live_project_lifecycle_validation.py +0 -77
  552. package/mcps/davinci-resolve-mcp/tests/live_render_deliver_validation.py +0 -82
  553. package/mcps/davinci-resolve-mcp/tests/live_review_annotation_validation.py +0 -91
  554. package/mcps/davinci-resolve-mcp/tests/live_script_smoke.py +0 -141
  555. package/mcps/davinci-resolve-mcp/tests/live_sync_event_validation.py +0 -165
  556. package/mcps/davinci-resolve-mcp/tests/live_timeline_conform_validation.py +0 -77
  557. package/mcps/davinci-resolve-mcp/tests/live_v233_validation.py +0 -282
  558. package/mcps/davinci-resolve-mcp/tests/test-after-restart.bat +0 -83
  559. package/mcps/davinci-resolve-mcp/tests/test-after-restart.sh +0 -87
  560. package/mcps/davinci-resolve-mcp/tests/test_action_help.py +0 -47
  561. package/mcps/davinci-resolve-mcp/tests/test_action_list_drift.py +0 -163
  562. package/mcps/davinci-resolve-mcp/tests/test_ai_console_dispatch.py +0 -91
  563. package/mcps/davinci-resolve-mcp/tests/test_analysis_caps.py +0 -210
  564. package/mcps/davinci-resolve-mcp/tests/test_analysis_runs.py +0 -157
  565. package/mcps/davinci-resolve-mcp/tests/test_analysis_store.py +0 -366
  566. package/mcps/davinci-resolve-mcp/tests/test_api_limitations_doc.py +0 -56
  567. package/mcps/davinci-resolve-mcp/tests/test_api_truth.py +0 -64
  568. package/mcps/davinci-resolve-mcp/tests/test_api_truth_mitigations.py +0 -45
  569. package/mcps/davinci-resolve-mcp/tests/test_append_clip_infos_result_handling.py +0 -679
  570. package/mcps/davinci-resolve-mcp/tests/test_audio_fairlight_probe.py +0 -216
  571. package/mcps/davinci-resolve-mcp/tests/test_auto_run.py +0 -76
  572. package/mcps/davinci-resolve-mcp/tests/test_auto_sync_audio.py +0 -171
  573. package/mcps/davinci-resolve-mcp/tests/test_batch_cli.py +0 -253
  574. package/mcps/davinci-resolve-mcp/tests/test_brain_edits.py +0 -218
  575. package/mcps/davinci-resolve-mcp/tests/test_bridge_metrics.py +0 -52
  576. package/mcps/davinci-resolve-mcp/tests/test_bulk_match_to_hero.py +0 -219
  577. package/mcps/davinci-resolve-mcp/tests/test_caps_events_and_history.py +0 -147
  578. package/mcps/davinci-resolve-mcp/tests/test_caps_integration.py +0 -315
  579. package/mcps/davinci-resolve-mcp/tests/test_cdl_and_install_config.py +0 -372
  580. package/mcps/davinci-resolve-mcp/tests/test_clip_query.py +0 -57
  581. package/mcps/davinci-resolve-mcp/tests/test_cloud_settings.py +0 -62
  582. package/mcps/davinci-resolve-mcp/tests/test_color_grade_probe.py +0 -230
  583. package/mcps/davinci-resolve-mcp/tests/test_confirm_token.py +0 -85
  584. package/mcps/davinci-resolve-mcp/tests/test_confirm_token_preferences.py +0 -22
  585. package/mcps/davinci-resolve-mcp/tests/test_contracts.py +0 -81
  586. package/mcps/davinci-resolve-mcp/tests/test_create_subtitles_settings.py +0 -111
  587. package/mcps/davinci-resolve-mcp/tests/test_custom_timeline.py +0 -137
  588. package/mcps/davinci-resolve-mcp/tests/test_cut_executor.py +0 -87
  589. package/mcps/davinci-resolve-mcp/tests/test_cut_ir.py +0 -82
  590. package/mcps/davinci-resolve-mcp/tests/test_dashboard_transport.py +0 -47
  591. package/mcps/davinci-resolve-mcp/tests/test_deep_vision.py +0 -311
  592. package/mcps/davinci-resolve-mcp/tests/test_description_xml_shape.py +0 -71
  593. package/mcps/davinci-resolve-mcp/tests/test_destructive_decorator_coverage.py +0 -92
  594. package/mcps/davinci-resolve-mcp/tests/test_destructive_hook.py +0 -245
  595. package/mcps/davinci-resolve-mcp/tests/test_destructive_registry_drift.py +0 -108
  596. package/mcps/davinci-resolve-mcp/tests/test_edit_engine.py +0 -574
  597. package/mcps/davinci-resolve-mcp/tests/test_embeddings.py +0 -302
  598. package/mcps/davinci-resolve-mcp/tests/test_entities.py +0 -225
  599. package/mcps/davinci-resolve-mcp/tests/test_error_envelope.py +0 -179
  600. package/mcps/davinci-resolve-mcp/tests/test_exhaustive_wave_a.py +0 -101
  601. package/mcps/davinci-resolve-mcp/tests/test_extension_authoring_probe.py +0 -77
  602. package/mcps/davinci-resolve-mcp/tests/test_extract_frames.py +0 -42
  603. package/mcps/davinci-resolve-mcp/tests/test_extract_source_frame_ranges.py +0 -129
  604. package/mcps/davinci-resolve-mcp/tests/test_failure_tracker.py +0 -103
  605. package/mcps/davinci-resolve-mcp/tests/test_fuse_dctl_authoring.py +0 -596
  606. package/mcps/davinci-resolve-mcp/tests/test_fusion_comp_targeting.py +0 -269
  607. package/mcps/davinci-resolve-mcp/tests/test_fusion_composition_probe.py +0 -156
  608. package/mcps/davinci-resolve-mcp/tests/test_fusion_group_settings.py +0 -284
  609. package/mcps/davinci-resolve-mcp/tests/test_fusion_mask_title.py +0 -205
  610. package/mcps/davinci-resolve-mcp/tests/test_fusion_node_ops.py +0 -212
  611. package/mcps/davinci-resolve-mcp/tests/test_governance_identity.py +0 -155
  612. package/mcps/davinci-resolve-mcp/tests/test_grade_evidence_base.py +0 -132
  613. package/mcps/davinci-resolve-mcp/tests/test_import.py +0 -153
  614. package/mcps/davinci-resolve-mcp/tests/test_improvements.py +0 -334
  615. package/mcps/davinci-resolve-mcp/tests/test_inventory_exclude_bins.py +0 -139
  616. package/mcps/davinci-resolve-mcp/tests/test_live_api.py +0 -315
  617. package/mcps/davinci-resolve-mcp/tests/test_marker_params.py +0 -234
  618. package/mcps/davinci-resolve-mcp/tests/test_mcp_prompts.py +0 -77
  619. package/mcps/davinci-resolve-mcp/tests/test_mcp_resources.py +0 -117
  620. package/mcps/davinci-resolve-mcp/tests/test_mcp_transport.py +0 -74
  621. package/mcps/davinci-resolve-mcp/tests/test_media_analysis.py +0 -4637
  622. package/mcps/davinci-resolve-mcp/tests/test_media_pool_append_verification.py +0 -153
  623. package/mcps/davinci-resolve-mcp/tests/test_media_pool_changes.py +0 -105
  624. package/mcps/davinci-resolve-mcp/tests/test_media_pool_delete_governance.py +0 -69
  625. package/mcps/davinci-resolve-mcp/tests/test_media_pool_ingest_probe.py +0 -546
  626. package/mcps/davinci-resolve-mcp/tests/test_media_pool_walk.py +0 -79
  627. package/mcps/davinci-resolve-mcp/tests/test_multicam_setup.py +0 -178
  628. package/mcps/davinci-resolve-mcp/tests/test_object_inspection.py +0 -140
  629. package/mcps/davinci-resolve-mcp/tests/test_open_control_panel.py +0 -172
  630. package/mcps/davinci-resolve-mcp/tests/test_p1_param_validation.py +0 -57
  631. package/mcps/davinci-resolve-mcp/tests/test_p1_whitelist_and_delete.py +0 -81
  632. package/mcps/davinci-resolve-mcp/tests/test_page_lock.py +0 -52
  633. package/mcps/davinci-resolve-mcp/tests/test_panel_docs_drift.py +0 -77
  634. package/mcps/davinci-resolve-mcp/tests/test_partial_success_manifest.py +0 -113
  635. package/mcps/davinci-resolve-mcp/tests/test_persistence_safety.py +0 -147
  636. package/mcps/davinci-resolve-mcp/tests/test_prefer_handle.py +0 -89
  637. package/mcps/davinci-resolve-mcp/tests/test_project_cleanup.py +0 -111
  638. package/mcps/davinci-resolve-mcp/tests/test_project_lifecycle_probe.py +0 -256
  639. package/mcps/davinci-resolve-mcp/tests/test_project_lint.py +0 -79
  640. package/mcps/davinci-resolve-mcp/tests/test_project_spec.py +0 -246
  641. package/mcps/davinci-resolve-mcp/tests/test_propose_grade.py +0 -116
  642. package/mcps/davinci-resolve-mcp/tests/test_provenance.py +0 -88
  643. package/mcps/davinci-resolve-mcp/tests/test_readback.py +0 -77
  644. package/mcps/davinci-resolve-mcp/tests/test_readwrite_audit.py +0 -43
  645. package/mcps/davinci-resolve-mcp/tests/test_reel_name_writeback.py +0 -149
  646. package/mcps/davinci-resolve-mcp/tests/test_render_deliver_probe.py +0 -250
  647. package/mcps/davinci-resolve-mcp/tests/test_resolve20_api.py +0 -282
  648. package/mcps/davinci-resolve-mcp/tests/test_resolve21_actions.py +0 -386
  649. package/mcps/davinci-resolve-mcp/tests/test_resolve_ai_governance.py +0 -92
  650. package/mcps/davinci-resolve-mcp/tests/test_resolve_ai_ledger.py +0 -89
  651. package/mcps/davinci-resolve-mcp/tests/test_resolve_busy.py +0 -134
  652. package/mcps/davinci-resolve-mcp/tests/test_review_annotation_probe.py +0 -162
  653. package/mcps/davinci-resolve-mcp/tests/test_sampling_modes.py +0 -293
  654. package/mcps/davinci-resolve-mcp/tests/test_script_plugin.py +0 -750
  655. package/mcps/davinci-resolve-mcp/tests/test_shot_relationships.py +0 -254
  656. package/mcps/davinci-resolve-mcp/tests/test_spec_lint_wiring.py +0 -311
  657. package/mcps/davinci-resolve-mcp/tests/test_static_undefined_names.py +0 -45
  658. package/mcps/davinci-resolve-mcp/tests/test_structural_diff.py +0 -67
  659. package/mcps/davinci-resolve-mcp/tests/test_sync_detection.py +0 -213
  660. package/mcps/davinci-resolve-mcp/tests/test_thumbnail_image.py +0 -55
  661. package/mcps/davinci-resolve-mcp/tests/test_timeline_brain_db.py +0 -230
  662. package/mcps/davinci-resolve-mcp/tests/test_timeline_conform_probe.py +0 -229
  663. package/mcps/davinci-resolve-mcp/tests/test_timeline_editorial_helpers.py +0 -88
  664. package/mcps/davinci-resolve-mcp/tests/test_timeline_export_enum.py +0 -59
  665. package/mcps/davinci-resolve-mcp/tests/test_timeline_kernel_probe.py +0 -70
  666. package/mcps/davinci-resolve-mcp/tests/test_timeline_title_text_utils.py +0 -64
  667. package/mcps/davinci-resolve-mcp/tests/test_timeline_versioning.py +0 -419
  668. package/mcps/davinci-resolve-mcp/tests/test_tool_choice_hint.py +0 -42
  669. package/mcps/davinci-resolve-mcp/tests/test_tool_exposure.py +0 -159
  670. package/mcps/davinci-resolve-mcp/tests/test_tool_registration.py +0 -91
  671. package/mcps/davinci-resolve-mcp/tests/test_transcript_read.py +0 -74
  672. package/mcps/davinci-resolve-mcp/tests/test_update_check.py +0 -171
  673. package/mcps/davinci-resolve-mcp/tests/test_update_hardening.py +0 -171
  674. package/mcps/davinci-resolve-mcp/tests/test_update_history.py +0 -116
  675. package/mcps/davinci-resolve-mcp/tests/test_v232_helpers.py +0 -265
  676. package/mcps/davinci-resolve-mcp/tests/test_v233_helpers.py +0 -307
  677. package/mcps/davinci-resolve-mcp/tests/test_validation_guards.py +0 -108
  678. package/mcps/davinci-resolve-mcp/tests/test_verification_stats.py +0 -32
  679. package/mcps/davinci-resolve-mcp/tests/test_waveb_p2_p3.py +0 -65
  680. package/mcps/golem-rhino-mcp/Nexus-AI-Agents.png +0 -0
  681. package/mcps/golem-rhino-mcp/docs/ARCHITECTURE.md +0 -277
  682. package/mcps/golem-rhino-mcp/docs/PROTOCOL.md +0 -247
  683. package/mcps/golem-rhino-mcp/docs/TOOL_REFERENCE.md +0 -1571
  684. package/mcps/golem-rhino-mcp/docs/TROUBLESHOOTING.md +0 -396
  685. package/mcps/golem-rhino-mcp/mcp_server/Screenshot 2026-03-20 at 18.33.06.png +0 -0
  686. package/mcps/golem-rhino-mcp/mcp_server/Screenshot 2026-03-21 at 1.43.01.png +0 -0
  687. package/mcps/golem-rhino-mcp/nexus-pngs/CAIO.png +0 -0
  688. package/mcps/golem-rhino-mcp/nexus-pngs/CEO.png +0 -0
  689. package/mcps/golem-rhino-mcp/nexus-pngs/CFO.png +0 -0
  690. package/mcps/golem-rhino-mcp/nexus-pngs/CHRO.png +0 -0
  691. package/mcps/golem-rhino-mcp/nexus-pngs/CISO.png +0 -0
  692. package/mcps/golem-rhino-mcp/nexus-pngs/CLO.png +0 -0
  693. package/mcps/golem-rhino-mcp/nexus-pngs/CMO.png +0 -0
  694. package/mcps/golem-rhino-mcp/nexus-pngs/COO.png +0 -0
  695. package/mcps/golem-rhino-mcp/nexus-pngs/CPO.png +0 -0
  696. package/mcps/golem-rhino-mcp/nexus-pngs/CRO.png +0 -0
  697. package/mcps/golem-rhino-mcp/nexus-pngs/CTO.png +0 -0
  698. package/mcps/golem-rhino-mcp/nexus-pngs/king-hippo.png +0 -0
  699. package/mcps/golem-rhino-mcp/nexus-pngs/tier-0-csuite.png +0 -0
  700. package/mcps/golem-rhino-mcp/screenshots/city_monument.png +0 -0
  701. package/mcps/golem-rhino-mcp/screenshots/city_skyline.png +0 -0
  702. package/mcps/golem-rhino-mcp/screenshots/city_street.png +0 -0
  703. package/mcps/golem-rhino-mcp/screenshots/city_wide.png +0 -0
  704. package/mcps/golem-rhino-mcp/tests/__init__.py +0 -0
  705. package/mcps/golem-rhino-mcp/tests/conftest.py +0 -150
  706. package/mcps/golem-rhino-mcp/tests/test_connection.py +0 -543
  707. package/mcps/golem-rhino-mcp/tests/test_integration.py +0 -344
  708. package/mcps/golem-rhino-mcp/tests/test_models.py +0 -749
  709. package/mcps/golem-rhino-mcp/tests/test_protocol.py +0 -334
  710. package/mcps/golem-rhino-mcp/tests/test_tools_mock.py +0 -689
  711. package/mcps/tdmcp/.github/social-preview.png +0 -0
  712. package/mcps/tdmcp/docs/.vitepress/config.ts +0 -397
  713. package/mcps/tdmcp/docs/AI_PARTY_LLM_TRAINING_PLAN.md +0 -118
  714. package/mcps/tdmcp/docs/AI_PARTY_POC.md +0 -142
  715. package/mcps/tdmcp/docs/AI_PARTY_POC_PLAN.md +0 -112
  716. package/mcps/tdmcp/docs/CREATIVE_RAG.md +0 -346
  717. package/mcps/tdmcp/docs/DEPLOYMENT.md +0 -113
  718. package/mcps/tdmcp/docs/PROJECT_RAG.md +0 -477
  719. package/mcps/tdmcp/docs/ROADMAP.md +0 -1346
  720. package/mcps/tdmcp/docs/guide/ai-controlled-party.md +0 -215
  721. package/mcps/tdmcp/docs/guide/body-tracking.md +0 -169
  722. package/mcps/tdmcp/docs/guide/codex.md +0 -107
  723. package/mcps/tdmcp/docs/guide/components.md +0 -126
  724. package/mcps/tdmcp/docs/guide/dashboard-foh.md +0 -93
  725. package/mcps/tdmcp/docs/guide/faq.md +0 -62
  726. package/mcps/tdmcp/docs/guide/first-visual.md +0 -76
  727. package/mcps/tdmcp/docs/guide/generators.md +0 -230
  728. package/mcps/tdmcp/docs/guide/glossary.md +0 -123
  729. package/mcps/tdmcp/docs/guide/install.md +0 -200
  730. package/mcps/tdmcp/docs/guide/local-copilot.md +0 -154
  731. package/mcps/tdmcp/docs/guide/lops-integration.md +0 -133
  732. package/mcps/tdmcp/docs/guide/mcp-resources.md +0 -96
  733. package/mcps/tdmcp/docs/guide/mediapipe-adapters.md +0 -90
  734. package/mcps/tdmcp/docs/guide/physical-installations.md +0 -129
  735. package/mcps/tdmcp/docs/guide/prompt-cookbook.md +0 -2285
  736. package/mcps/tdmcp/docs/guide/recipes.md +0 -72
  737. package/mcps/tdmcp/docs/guide/session-profile.md +0 -90
  738. package/mcps/tdmcp/docs/guide/shader-park.md +0 -94
  739. package/mcps/tdmcp/docs/guide/show-timelines.md +0 -125
  740. package/mcps/tdmcp/docs/guide/troubleshooting.md +0 -121
  741. package/mcps/tdmcp/docs/guide/what-is-tdmcp.md +0 -62
  742. package/mcps/tdmcp/docs/index.md +0 -49
  743. package/mcps/tdmcp/docs/privacy.md +0 -85
  744. package/mcps/tdmcp/docs/pt/CREATIVE_RAG.md +0 -370
  745. package/mcps/tdmcp/docs/pt/PROJECT_RAG.md +0 -420
  746. package/mcps/tdmcp/docs/pt/guide/ai-controlled-party.md +0 -218
  747. package/mcps/tdmcp/docs/pt/guide/body-tracking.md +0 -175
  748. package/mcps/tdmcp/docs/pt/guide/codex.md +0 -113
  749. package/mcps/tdmcp/docs/pt/guide/components.md +0 -129
  750. package/mcps/tdmcp/docs/pt/guide/dashboard-foh.md +0 -95
  751. package/mcps/tdmcp/docs/pt/guide/faq.md +0 -62
  752. package/mcps/tdmcp/docs/pt/guide/first-visual.md +0 -81
  753. package/mcps/tdmcp/docs/pt/guide/generators.md +0 -243
  754. package/mcps/tdmcp/docs/pt/guide/glossary.md +0 -127
  755. package/mcps/tdmcp/docs/pt/guide/install.md +0 -196
  756. package/mcps/tdmcp/docs/pt/guide/local-copilot.md +0 -164
  757. package/mcps/tdmcp/docs/pt/guide/lops-integration.md +0 -143
  758. package/mcps/tdmcp/docs/pt/guide/mcp-resources.md +0 -96
  759. package/mcps/tdmcp/docs/pt/guide/mediapipe-adapters.md +0 -93
  760. package/mcps/tdmcp/docs/pt/guide/physical-installations.md +0 -135
  761. package/mcps/tdmcp/docs/pt/guide/prompt-cookbook.md +0 -2342
  762. package/mcps/tdmcp/docs/pt/guide/recipes.md +0 -59
  763. package/mcps/tdmcp/docs/pt/guide/session-profile.md +0 -92
  764. package/mcps/tdmcp/docs/pt/guide/shader-park.md +0 -95
  765. package/mcps/tdmcp/docs/pt/guide/show-timelines.md +0 -128
  766. package/mcps/tdmcp/docs/pt/guide/troubleshooting.md +0 -109
  767. package/mcps/tdmcp/docs/pt/guide/what-is-tdmcp.md +0 -61
  768. package/mcps/tdmcp/docs/pt/index.md +0 -49
  769. package/mcps/tdmcp/docs/pt/privacy.md +0 -91
  770. package/mcps/tdmcp/docs/pt/reference/architecture.md +0 -178
  771. package/mcps/tdmcp/docs/pt/reference/environment.md +0 -70
  772. package/mcps/tdmcp/docs/public/favicon.svg +0 -12
  773. package/mcps/tdmcp/docs/public/logo-400.png +0 -0
  774. package/mcps/tdmcp/docs/public/og-image.jpg +0 -0
  775. package/mcps/tdmcp/docs/public/robots.txt +0 -4
  776. package/mcps/tdmcp/docs/reference/API_STABILITY.md +0 -116
  777. package/mcps/tdmcp/docs/reference/architecture.md +0 -191
  778. package/mcps/tdmcp/docs/reference/bridge-api.md +0 -155
  779. package/mcps/tdmcp/docs/reference/cli.md +0 -288
  780. package/mcps/tdmcp/docs/reference/coverage-harness.md +0 -61
  781. package/mcps/tdmcp/docs/reference/environment.md +0 -116
  782. package/mcps/tdmcp/docs/reference/packages.md +0 -98
  783. package/mcps/tdmcp/docs/reference/tool-contract.md +0 -74
  784. package/mcps/tdmcp/docs/superpowers/plans/2026-05-29-shader-park-animus-integrations.md +0 -76
  785. package/mcps/tdmcp/docs/superpowers/plans/2026-06-02-doctor-fix-textport-auto-install.md +0 -131
  786. package/mcps/tdmcp/docs/superpowers/plans/2026-06-06-body-bubbles.md +0 -138
  787. package/mcps/tdmcp/docs/superpowers/plans/2026-06-08-deep-doppelganger-implementation.md +0 -201
  788. package/mcps/tdmcp/docs/superpowers/plans/2026-06-10-ai-party-ollama-integration.md +0 -55
  789. package/mcps/tdmcp/docs/superpowers/plans/2026-06-24-kinect-wall-harp-calibration-wizard.md +0 -53
  790. package/mcps/tdmcp/docs/superpowers/plans/2026-06-24-kinect-wall-harp-external-kinect.md +0 -286
  791. package/mcps/tdmcp/docs/superpowers/specs/2026-05-31-create-vector-lines-design.md +0 -308
  792. package/mcps/tdmcp/docs/superpowers/specs/2026-06-01-ai-controlled-party-plan.md +0 -461
  793. package/mcps/tdmcp/docs/superpowers/specs/2026-06-04-ai-party-ui24r-scene-arming-design.md +0 -296
  794. package/mcps/tdmcp/docs/superpowers/specs/2026-06-08-ai-controlled-party-producer-poc.md +0 -232
  795. package/mcps/tdmcp/docs/superpowers/specs/2026-06-08-deep-doppelganger-design.md +0 -136
  796. package/mcps/tdmcp/docs/superpowers/specs/2026-06-10-hermes-ai-party-poc.md +0 -383
  797. package/mcps/tdmcp/docs/superpowers/specs/2026-06-23-kinect-wall-harp-design.md +0 -340
  798. package/mcps/tdmcp/docs/superpowers/specs/2026-06-24-kinect-environment-diagnostic-design.md +0 -151
  799. package/mcps/tdmcp/docs/superpowers/specs/2026-06-24-kinect-wall-harp-external-kinect-design.md +0 -104
  800. package/mcps/tdmcp/training/showintent/data/curated/.gitkeep +0 -1
  801. package/mcps/tdmcp/training/showintent/data/curated/curated-approved.jsonl +0 -1
  802. package/mcps/tdmcp/training/showintent/data/curation_template.csv +0 -1
  803. package/mcps/tdmcp/training/showintent/data/generated/.gitkeep +0 -1
  804. package/mcps/tdmcp/training/showintent/data/generated/showintent-synthetic.jsonl +0 -2000
  805. package/mcps/tdmcp/training/showintent/data/raw/.gitkeep +0 -1
  806. package/mcps/tdmcp/training/showintent/data/splits/.gitkeep +0 -1
  807. package/mcps/tdmcp/training/showintent/data/splits/train-compact.jsonl +0 -1800
  808. package/mcps/tdmcp/training/showintent/data/splits/train.jsonl +0 -1800
  809. package/mcps/tdmcp/training/showintent/data/splits/validation-compact.jsonl +0 -200
  810. package/mcps/tdmcp/training/showintent/data/splits/validation.jsonl +0 -200
  811. package/mcps/touchdesigner-mcp/assets/import.png +0 -0
  812. package/mcps/touchdesigner-mcp/assets/nodes_list.png +0 -0
  813. package/mcps/touchdesigner-mcp/assets/particle_on_youtube.png +0 -0
  814. package/mcps/touchdesigner-mcp/assets/textport.png +0 -0
  815. package/mcps/touchdesigner-mcp/assets/tutorial.png +0 -0
  816. package/mcps/touchdesigner-mcp/assets/tutorial_docker.png +0 -0
  817. package/mcps/touchdesigner-mcp/docs/architecture.md +0 -1245
  818. package/mcps/touchdesigner-mcp/docs/development.ja.md +0 -197
  819. package/mcps/touchdesigner-mcp/docs/development.md +0 -212
  820. package/mcps/touchdesigner-mcp/docs/installation.ja.md +0 -370
  821. package/mcps/touchdesigner-mcp/docs/installation.md +0 -406
  822. package/mcps/unreal_mcp/Public/icon.png +0 -0
  823. package/mcps/unreal_mcp/docs/Engine-API-Reference.md +0 -2251
  824. package/mcps/unreal_mcp/docs/Roadmap.md +0 -2269
  825. package/mcps/unreal_mcp/docs/editor-plugin-extension.md +0 -373
  826. package/mcps/unreal_mcp/docs/handler-mapping.md +0 -1170
  827. package/mcps/unreal_mcp/docs/native-automation-progress.md +0 -431
  828. package/mcps/unreal_mcp/docs/testing-guide.md +0 -149
  829. package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Domains/Test/McpAutomationBridge_TestHandlers.cpp +0 -74
  830. package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Tests/McpCustomHandlerAliasTests.cpp +0 -191
  831. package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Tests/McpEnvironmentSnapshotSchemaTests.cpp +0 -192
  832. package/mcps/unreal_mcp/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/Tests/McpPropertyReflectionImportTests.cpp +0 -269
  833. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAcpClientProtocolAutomation.cpp +0 -152
  834. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAcpProtocolTestHelpers.cpp +0 -136
  835. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAcpProtocolTestHelpers.h +0 -49
  836. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationTestDelegates.h +0 -12
  837. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationTests.cpp +0 -34
  838. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationWidgetHelpers.cpp +0 -116
  839. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentAutomationWidgetHelpers.h +0 -15
  840. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentFakeAcpScript.cpp +0 -76
  841. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelAutomation.h +0 -35
  842. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelAutomationFixture.cpp +0 -118
  843. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelHistoryChecks.cpp +0 -162
  844. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelLayoutChecks.cpp +0 -158
  845. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentPanelTranscriptChecks.cpp +0 -117
  846. package/mcps/unreal_mcp/plugins/UnrealAgent/Source/UnrealAgent/Private/Tests/UnrealAgentStudioKitAutomationChecks.cpp +0 -155
  847. package/mcps/unreal_mcp/tests/AGENTS.md +0 -73
  848. package/mcps/unreal_mcp/tests/expectation-utils.mjs +0 -29
  849. package/mcps/unreal_mcp/tests/heartbeat-progress.test.mjs +0 -143
  850. package/mcps/unreal_mcp/tests/integration/get_ai_info_characterization.mjs +0 -216
  851. package/mcps/unreal_mcp/tests/integration.mjs +0 -94
  852. package/mcps/unreal_mcp/tests/mcp-tools/core/control-actor.test.mjs +0 -114
  853. package/mcps/unreal_mcp/tests/mcp-tools/core/control-editor.test.mjs +0 -86
  854. package/mcps/unreal_mcp/tests/mcp-tools/core/inspect.test.mjs +0 -85
  855. package/mcps/unreal_mcp/tests/mcp-tools/core/manage-asset.test.mjs +0 -302
  856. package/mcps/unreal_mcp/tests/mcp-tools/core/manage-blueprint.test.mjs +0 -331
  857. package/mcps/unreal_mcp/tests/mcp-tools/core/manage-level.test.mjs +0 -73
  858. package/mcps/unreal_mcp/tests/mcp-tools/core/manage-tools.test.mjs +0 -30
  859. package/mcps/unreal_mcp/tests/mcp-tools/core/system-control.test.mjs +0 -205
  860. package/mcps/unreal_mcp/tests/mcp-tools/gameplay/animation-physics.test.mjs +0 -277
  861. package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-ai.test.mjs +0 -299
  862. package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-character.test.mjs +0 -85
  863. package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-combat.test.mjs +0 -106
  864. package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-effect.test.mjs +0 -108
  865. package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-gas.test.mjs +0 -96
  866. package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-interaction.test.mjs +0 -122
  867. package/mcps/unreal_mcp/tests/mcp-tools/gameplay/manage-inventory.test.mjs +0 -146
  868. package/mcps/unreal_mcp/tests/mcp-tools/utility/behavior-tree-get-tree.test.mjs +0 -233
  869. package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-audio.test.mjs +0 -160
  870. package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-behavior-tree.test.mjs +0 -223
  871. package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-networking.test.mjs +0 -635
  872. package/mcps/unreal_mcp/tests/mcp-tools/utility/manage-sequence.test.mjs +0 -95
  873. package/mcps/unreal_mcp/tests/mcp-tools/world/build-environment.test.mjs +0 -282
  874. package/mcps/unreal_mcp/tests/mcp-tools/world/manage-geometry.test.mjs +0 -130
  875. package/mcps/unreal_mcp/tests/mcp-tools/world/manage-level-structure.test.mjs +0 -149
  876. package/mcps/unreal_mcp/tests/mcp-tools/world/manage-pcg.test.mjs +0 -471
  877. package/mcps/unreal_mcp/tests/mcp-tools/world/rendering-cases.cjs +0 -775
  878. package/mcps/unreal_mcp/tests/mcp-tools/world/rendering.test.mjs +0 -15
  879. package/mcps/unreal_mcp/tests/native-mcp-parity-audit.mjs +0 -260
  880. package/mcps/unreal_mcp/tests/native-mcp-source-parser.mjs +0 -229
  881. package/mcps/unreal_mcp/tests/native-mcp-typescript-parity-parser.mjs +0 -121
  882. package/mcps/unreal_mcp/tests/parameter-audit-cli.mjs +0 -23
  883. package/mcps/unreal_mcp/tests/parameter-audit-context.mjs +0 -14
  884. package/mcps/unreal_mcp/tests/parameter-audit-coverage.mjs +0 -164
  885. package/mcps/unreal_mcp/tests/parameter-audit-schema.mjs +0 -190
  886. package/mcps/unreal_mcp/tests/parameter-audit-suites.mjs +0 -218
  887. package/mcps/unreal_mcp/tests/parameter-combination-audit.mjs +0 -37
  888. package/mcps/unreal_mcp/tests/test-runner-response-utils.mjs +0 -132
  889. package/mcps/unreal_mcp/tests/test-runner.mjs +0 -1798
  890. package/mcps/unreal_mcp/tests/unit/automation/bridge_host_validation.test.ts +0 -165
  891. package/mcps/unreal_mcp/tests/unit/config.test.ts +0 -205
  892. package/mcps/unreal_mcp/tests/unit/native_mcp_parity_audit.test.ts +0 -281
  893. package/mcps/unreal_mcp/tests/unit/native_mcp_parity_comment_filtering.test.ts +0 -175
  894. package/mcps/unreal_mcp/tests/unit/parameter_audit_schema.test.ts +0 -273
  895. package/mcps/unreal_mcp/tests/unit/plugin/automation_event_stream_contracts.test.ts +0 -195
  896. package/mcps/unreal_mcp/tests/unit/plugin/environment_asset_name_contracts.test.ts +0 -115
  897. package/mcps/unreal_mcp/tests/unit/plugin/environment_build_adapter_contracts.test.ts +0 -377
  898. package/mcps/unreal_mcp/tests/unit/plugin/environment_snapshot_path_contracts.test.ts +0 -122
  899. package/mcps/unreal_mcp/tests/unit/plugin/handler_routing_contracts.test.ts +0 -120
  900. package/mcps/unreal_mcp/tests/unit/plugin/level_lighting_contracts.test.ts +0 -125
  901. package/mcps/unreal_mcp/tests/unit/plugin/plugin_manifest_contracts.test.ts +0 -154
  902. package/mcps/unreal_mcp/tests/unit/plugin/plugin_packaging_contracts.test.ts +0 -124
  903. package/mcps/unreal_mcp/tests/unit/plugin/runtime_behavior_contracts.test.ts +0 -372
  904. package/mcps/unreal_mcp/tests/unit/plugin/security_contracts.test.ts +0 -81
  905. package/mcps/unreal_mcp/tests/unit/plugin/source_structure.test.ts +0 -101
  906. package/mcps/unreal_mcp/tests/unit/plugin/source_structure_contracts.test.ts +0 -103
  907. package/mcps/unreal_mcp/tests/unit/plugin/websocket_origin_contracts.test.ts +0 -25
  908. package/mcps/unreal_mcp/tests/unit/server_shutdown_contracts.test.ts +0 -33
  909. package/mcps/unreal_mcp/tests/unit/source_structure.test.ts +0 -79
  910. package/mcps/unreal_mcp/tests/unit/test_runner.test.ts +0 -342
  911. package/mcps/unreal_mcp/tests/unit/test_runner_response_utils.test.ts +0 -105
  912. package/mcps/unreal_mcp/tests/unit/tools/asset_handlers_security.test.ts +0 -246
  913. package/mcps/unreal_mcp/tests/unit/tools/behavior_tree_get_tree.test.ts +0 -20
  914. package/mcps/unreal_mcp/tests/unit/tools/blueprint_handlers.test.ts +0 -122
  915. package/mcps/unreal_mcp/tests/unit/tools/editor.test.ts +0 -56
  916. package/mcps/unreal_mcp/tests/unit/tools/handler_structure.test.ts +0 -59
  917. package/mcps/unreal_mcp/tests/unit/tools/inspect_handlers.test.ts +0 -231
  918. package/mcps/unreal_mcp/tests/unit/tools/level.test.ts +0 -56
  919. package/mcps/unreal_mcp/tests/unit/tools/level_security.test.ts +0 -45
  920. package/mcps/unreal_mcp/tests/unit/tools/lighting_timeout_propagation.test.ts +0 -123
  921. package/mcps/windows-computer-use-mcp/cua-reports/app-1781542686.png +0 -0
  922. package/mcps/windows-computer-use-mcp/cua-reports/bridge-1781542694.png +0 -0
  923. package/mcps/windows-computer-use-mcp/cua-reports/bridge-ok-1781442393.png +0 -0
  924. package/mcps/windows-computer-use-mcp/cua-reports/bridge-ok-1781442915.png +0 -0
  925. package/mcps/windows-computer-use-mcp/cua-reports/bridge-snap-1781444105.png +0 -0
  926. package/mcps/windows-computer-use-mcp/cua-reports/bridge-snap-1781444214.png +0 -0
  927. package/mcps/windows-computer-use-mcp/cua-reports/bridge-snap-1781457035.png +0 -0
  928. package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781440024.png +0 -0
  929. package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781440234.png +0 -0
  930. package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781442383.png +0 -0
  931. package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781442906.png +0 -0
  932. package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781444096.png +0 -0
  933. package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781444209.png +0 -0
  934. package/mcps/windows-computer-use-mcp/cua-reports/cua-smoke-1781457029.png +0 -0
  935. package/mcps/windows-computer-use-mcp/cua-reports/nav/dashboard-1781542713.png +0 -0
  936. package/mcps/windows-computer-use-mcp/cua-reports/nav/help-1781542738.png +0 -0
  937. package/mcps/windows-computer-use-mcp/cua-reports/nav/logging-1781542722.png +0 -0
  938. package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-dashboard-1781444225.png +0 -0
  939. package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-dashboard-1781457051.png +0 -0
  940. package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-help-1781444245.png +0 -0
  941. package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-help-1781457075.png +0 -0
  942. package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-logging-1781444232.png +0 -0
  943. package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-logging-1781457059.png +0 -0
  944. package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-settings-1781444239.png +0 -0
  945. package/mcps/windows-computer-use-mcp/cua-reports/nav/nav-settings-1781457067.png +0 -0
  946. package/mcps/windows-computer-use-mcp/cua-reports/nav/settings-1781542730.png +0 -0
  947. package/mcps/windows-computer-use-mcp/cua-reports/nav-dashboard-1781442925.png +0 -0
  948. package/mcps/windows-computer-use-mcp/cua-reports/nav-help-1781442941.png +0 -0
  949. package/mcps/windows-computer-use-mcp/cua-reports/nav-logging-1781442930.png +0 -0
  950. package/mcps/windows-computer-use-mcp/cua-reports/nav-settings-1781442936.png +0 -0
  951. package/mcps/windows-computer-use-mcp/docs/ARCHITECTURE.md +0 -46
  952. package/mcps/windows-computer-use-mcp/docs/ASSESSMENT_BY_CURSOR_2026-06-14_CUA_NSIS.md +0 -383
  953. package/mcps/windows-computer-use-mcp/docs/AUTOMATION_ASSERT_SPEC.md +0 -202
  954. package/mcps/windows-computer-use-mcp/docs/CUA_PARITY.md +0 -39
  955. package/mcps/windows-computer-use-mcp/docs/DEVELOPMENT.md +0 -51
  956. package/mcps/windows-computer-use-mcp/docs/MEMOPS_CUA.md +0 -147
  957. package/mcps/windows-computer-use-mcp/docs/PRD.md +0 -93
  958. package/mcps/windows-computer-use-mcp/docs/README.md +0 -34
  959. package/mcps/windows-computer-use-mcp/docs/ROADMAP.md +0 -142
  960. package/mcps/windows-computer-use-mcp/docs/SAFETY.md +0 -138
  961. package/mcps/windows-computer-use-mcp/docs/TESTING.md +0 -90
  962. package/mcps/windows-computer-use-mcp/docs/TOOLS.md +0 -80
  963. package/mcps/windows-computer-use-mcp/docs/TOOL_DOCSTRING_STANDARD.md +0 -538
  964. package/mcps/windows-computer-use-mcp/docs/_stale/AHK_VS_PYWINAUTO_COMPARISON.md +0 -353
  965. package/mcps/windows-computer-use-mcp/docs/_stale/ASSESSMENT.md +0 -54
  966. package/mcps/windows-computer-use-mcp/docs/_stale/ASSESSMENT_2026-06-08.md +0 -309
  967. package/mcps/windows-computer-use-mcp/docs/_stale/COMPLETE_DOCUMENTATION_STRUCTURE.md +0 -5
  968. package/mcps/windows-computer-use-mcp/docs/_stale/CUA_ASSISTANT_TODO.md +0 -84
  969. package/mcps/windows-computer-use-mcp/docs/_stale/CUA_PARITY_ROADMAP.md +0 -81
  970. package/mcps/windows-computer-use-mcp/docs/_stale/CUA_ROADMAP.md +0 -306
  971. package/mcps/windows-computer-use-mcp/docs/_stale/DESKTOP_APP.md +0 -125
  972. package/mcps/windows-computer-use-mcp/docs/_stale/DOCUMENTATION_INDEX.md +0 -59
  973. package/mcps/windows-computer-use-mcp/docs/_stale/GLAMA_AI_CRITICISM_ANALYSIS.md +0 -259
  974. package/mcps/windows-computer-use-mcp/docs/_stale/GLAMA_AI_PLATFORM.md +0 -175
  975. package/mcps/windows-computer-use-mcp/docs/_stale/GLAMA_AI_RESCAN_GUIDE.md +0 -216
  976. package/mcps/windows-computer-use-mcp/docs/_stale/GOLD_STATUS_ACHIEVEMENT.md +0 -197
  977. package/mcps/windows-computer-use-mcp/docs/_stale/LLM_REPO_CONTEXT.md +0 -7
  978. package/mcps/windows-computer-use-mcp/docs/_stale/MCP_PRODUCTION_CHECKLIST.md +0 -105
  979. package/mcps/windows-computer-use-mcp/docs/_stale/OFFICE_BACKGROUND_MATRIX.md +0 -19
  980. package/mcps/windows-computer-use-mcp/docs/_stale/OPERATOR_PROTOCOL.md +0 -37
  981. package/mcps/windows-computer-use-mcp/docs/_stale/ORGANIZATION_SUMMARY.md +0 -305
  982. package/mcps/windows-computer-use-mcp/docs/_stale/RENAME-TO-AUTOMATION-MCP.md +0 -191
  983. package/mcps/windows-computer-use-mcp/docs/_stale/STATUS_REPORT.md +0 -288
  984. package/mcps/windows-computer-use-mcp/docs/_stale/TARGETS_PAGE_SKETCH.md +0 -977
  985. package/mcps/windows-computer-use-mcp/docs/_stale/TOOL_DOCSTRING_MIGRATION.md +0 -365
  986. package/mcps/windows-computer-use-mcp/docs/_stale/USAGE_SCENARIOS.md +0 -697
  987. package/mcps/windows-computer-use-mcp/docs/_stale/desktop-state-tool.md +0 -464
  988. package/mcps/windows-computer-use-mcp/docs/_stale/development/README.md +0 -18
  989. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/AI_DEVELOPMENT_RULES.md +0 -928
  990. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/AI_DEVELOPMENT_TOOLS_COMPARISON.md +0 -364
  991. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/BULLETPROOF_MCP_GUIDE.md +0 -793
  992. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/DEBUGGING_LESSONS_LEARNED.md +0 -635
  993. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/DEVELOPMENT_PAIN_POINTS.md +0 -699
  994. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/FILE_VALIDATION_COMPLETE.md +0 -410
  995. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/FILE_VALIDATION_GUIDE.md +0 -575
  996. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/LINK_PARSER_FIX.md +0 -769
  997. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/MCP_SYNC_DEBUGGING_GUIDE.md +0 -512
  998. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/PYTHON_DEPENDENCY_HELL_FIX.md +0 -568
  999. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/PYTHON_SNIPPETS_USAGE_GUIDE.md +0 -717
  1000. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/README.md +0 -25
  1001. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/SYNC_HEALTH_IMPROVEMENTS_SUMMARY.md +0 -496
  1002. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/SYNC_HEALTH_INTEGRATION.md +0 -381
  1003. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/SYSTEMATIC_PROJECT_UPDATES.md +0 -532
  1004. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/mcp-prompt-templates-vs-docstrings.md +0 -657
  1005. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/mcp-tool-docstring-best-practices.md +0 -439
  1006. package/mcps/windows-computer-use-mcp/docs/_stale/development/archive/mcp-tool-documentation-standards.md +0 -1153
  1007. package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/CI_CD_GLAMA_OPTIMIZATION_GUIDE.md +0 -850
  1008. package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_CRITICISM_ANALYSIS.md +0 -259
  1009. package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_OPTIMIZATION_SUMMARY.md +0 -204
  1010. package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_PLATFORM.md +0 -175
  1011. package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_AI_RESCAN_GUIDE.md +0 -216
  1012. package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_GITHUB_APP_SETUP.md +0 -199
  1013. package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_INTEGRATION.md +0 -181
  1014. package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GLAMA_RESCAN_EMAIL.txt +0 -43
  1015. package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GOLD_STATUS_ACHIEVEMENT.md +0 -197
  1016. package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/GOLD_STATUS_UPDATE_2025_10_08.md +0 -378
  1017. package/mcps/windows-computer-use-mcp/docs/_stale/glama-platform/README.md +0 -632
  1018. package/mcps/windows-computer-use-mcp/docs/_stale/legacy/requirements-fastmcp.txt +0 -8
  1019. package/mcps/windows-computer-use-mcp/docs/_stale/legacy/requirements_minimal.txt +0 -4
  1020. package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/CLAUDE_DESKTOP_DEBUGGING.md +0 -561
  1021. package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/CONTAINERIZATION_GUIDELINES.md +0 -707
  1022. package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/MCP_PRODUCTION_CHECKLIST.md +0 -101
  1023. package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/MONITORING_STACK_DEPLOYMENT.md +0 -532
  1024. package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/README.md +0 -266
  1025. package/mcps/windows-computer-use-mcp/docs/_stale/mcp-technical/TROUBLESHOOTING_FASTMCP_2.12.md +0 -670
  1026. package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/MCPB_BUILDING_GUIDE.md +0 -1921
  1027. package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/MCPB_IMPLEMENTATION_SUMMARY.md +0 -387
  1028. package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/PYPI_PUBLISHING_GUIDE.md +0 -789
  1029. package/mcps/windows-computer-use-mcp/docs/_stale/mcpb-packaging/README.md +0 -404
  1030. package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/COMMUNITY_AND_SUPPORT.md +0 -976
  1031. package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/LANGUAGE_SERVER_PROTOCOL_EXPLAINED.md +0 -416
  1032. package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/MCP_TOOL_CORRUPTION_ISSUE.md +0 -279
  1033. package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_ALTERNATIVES.md +0 -308
  1034. package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_COLOR_FIX_2025_10_08.md +0 -187
  1035. package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_COMPLETE_GUIDE.md +0 -1259
  1036. package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NOTEPADPP_NUCLEAR_REINSTALL_2025_10_08.md +0 -196
  1037. package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/NPP_WHITE_ON_WHITE_BATTLE_PLAN.md +0 -336
  1038. package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/PLUGIN_ECOSYSTEM_COMPREHENSIVE.md +0 -887
  1039. package/mcps/windows-computer-use-mcp/docs/_stale/notepadpp/README.md +0 -472
  1040. package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/BACKUP_AND_RECOVERY_GUIDE.md +0 -455
  1041. package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/BRANCH_PROTECTION_SETTINGS.md +0 -236
  1042. package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/BRANCH_STRATEGY_AND_AI_WORKFLOW.md +0 -616
  1043. package/mcps/windows-computer-use-mcp/docs/_stale/repository-protection/README.md +0 -333
  1044. package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_COPY_TO_OTHER_REPOS.md +0 -159
  1045. package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_GUIDE.md +0 -632
  1046. package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_INSTALL_AND_TEST.md +0 -569
  1047. package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_NEXT_STEPS.md +0 -351
  1048. package/mcps/windows-computer-use-mcp/docs/_stale/serena/SERENA_QUICK_INSTALL.md +0 -195
  1049. package/mcps/windows-computer-use-mcp/docs/_stale/state-tool-implementation.md +0 -498
  1050. package/mcps/windows-computer-use-mcp/docs/composing-with-playwright.md +0 -55
  1051. package/mcps/windows-computer-use-mcp/docs/cua-nsis-certification.md +0 -101
  1052. package/mcps/windows-computer-use-mcp/docs/ocr.md +0 -107
  1053. package/mcps/windows-computer-use-mcp/docs/py-stack.md +0 -47
  1054. package/mcps/windows-computer-use-mcp/native/icons/icon.png +0 -0
  1055. package/mcps/windows-computer-use-mcp/screenshot_demo.png +0 -0
  1056. package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/export_complete_toast.png +0 -0
  1057. package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/export_dialog_title.png +0 -0
  1058. package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/file_dialog_path_field.png +0 -0
  1059. package/mcps/windows-computer-use-mcp/src/windows_computer_use_mcp/templates/vroidstudio/default/sample_tile_female.png +0 -0
  1060. package/mcps/windows-computer-use-mcp/tests/README.md +0 -155
  1061. package/mcps/windows-computer-use-mcp/tests/__init__.py +0 -1
  1062. package/mcps/windows-computer-use-mcp/tests/conftest.py +0 -281
  1063. package/mcps/windows-computer-use-mcp/tests/conftest_env.py +0 -116
  1064. package/mcps/windows-computer-use-mcp/tests/e2e/conftest.py +0 -96
  1065. package/mcps/windows-computer-use-mcp/tests/e2e/test_libreoffice_cua_loop.py +0 -72
  1066. package/mcps/windows-computer-use-mcp/tests/test_app_integration.py +0 -83
  1067. package/mcps/windows-computer-use-mcp/tests/test_app_profiles.py +0 -28
  1068. package/mcps/windows-computer-use-mcp/tests/test_automation_assert.py +0 -185
  1069. package/mcps/windows-computer-use-mcp/tests/test_automation_dialog.py +0 -43
  1070. package/mcps/windows-computer-use-mcp/tests/test_automation_elements.py +0 -138
  1071. package/mcps/windows-computer-use-mcp/tests/test_automation_keyboard.py +0 -57
  1072. package/mcps/windows-computer-use-mcp/tests/test_automation_mouse.py +0 -57
  1073. package/mcps/windows-computer-use-mcp/tests/test_automation_shortcut.py +0 -41
  1074. package/mcps/windows-computer-use-mcp/tests/test_automation_task.py +0 -115
  1075. package/mcps/windows-computer-use-mcp/tests/test_automation_windows.py +0 -105
  1076. package/mcps/windows-computer-use-mcp/tests/test_cameras_api.py +0 -43
  1077. package/mcps/windows-computer-use-mcp/tests/test_cua_parity.py +0 -51
  1078. package/mcps/windows-computer-use-mcp/tests/test_dependency_failures.py +0 -39
  1079. package/mcps/windows-computer-use-mcp/tests/test_desktop_state.py +0 -99
  1080. package/mcps/windows-computer-use-mcp/tests/test_face_recognition.py +0 -238
  1081. package/mcps/windows-computer-use-mcp/tests/test_face_recognition_api.py +0 -161
  1082. package/mcps/windows-computer-use-mcp/tests/test_images/README.md +0 -28
  1083. package/mcps/windows-computer-use-mcp/tests/test_mission.py +0 -42
  1084. package/mcps/windows-computer-use-mcp/tests/test_portmanteau_windows_mock.py +0 -173
  1085. package/mcps/windows-computer-use-mcp/tests/test_portmanteau_windows_real.py +0 -139
  1086. package/mcps/windows-computer-use-mcp/tests/test_retry.py +0 -26
  1087. package/mcps/windows-computer-use-mcp/tests/test_safety_api.py +0 -24
  1088. package/mcps/windows-computer-use-mcp/tests/test_template_library.py +0 -53
  1089. package/mcps/windows-computer-use-mcp/tests/test_utils.py +0 -185
  1090. package/mcps/windows-computer-use-mcp/web_sota/src-tauri/icons/icon.png +0 -0
  1091. package/skills/global_config/google-sheets-automation/SKILL.md +0 -150
  1092. package/skills/global_config/senior-fullstack/SKILL.md +0 -221
  1093. package/skills/global_config/senior-fullstack/references/architecture_patterns.md +0 -103
  1094. package/skills/global_config/senior-fullstack/references/development_workflows.md +0 -103
  1095. package/skills/global_config/senior-fullstack/references/tech_stack_guide.md +0 -103
  1096. package/skills/global_config/senior-fullstack/scripts/code_quality_analyzer.py +0 -114
  1097. package/skills/global_config/senior-fullstack/scripts/fullstack_scaffolder.py +0 -114
  1098. package/skills/global_config/senior-fullstack/scripts/project_scaffolder.py +0 -114
@@ -1,219 +0,0 @@
1
- """Contract tests for C1 — bulk_match_to_hero map-reduce shot matching.
2
-
3
- See local/design/agentic-flow-improvements-gameplan.md §3 task C1.
4
- """
5
- import unittest
6
-
7
- import src.server as compound
8
-
9
-
10
- class _TimelineItemStub:
11
- def __init__(self, uid, name="clip"):
12
- self._uid = uid
13
- self._name = name
14
- self.copy_grades_calls = []
15
-
16
- def GetUniqueId(self):
17
- return self._uid
18
-
19
- def GetName(self):
20
- return self._name
21
-
22
- def GetCurrentVersion(self):
23
- return {"VersionName": "1"}
24
-
25
- def GetVersionNameList(self, version_type):
26
- return ["1"]
27
-
28
- def GetNodeGraph(self):
29
- return _NodeGraphStub()
30
-
31
- def GetColorGroup(self):
32
- return None
33
-
34
- def GetMediaPoolItem(self):
35
- return None
36
-
37
- def GetIsColorOutputCacheEnabled(self):
38
- return False
39
-
40
- def GetIsFusionOutputCacheEnabled(self):
41
- return False
42
-
43
- def CopyGrades(self, targets):
44
- self.copy_grades_calls.append([t.GetUniqueId() for t in targets])
45
- return True
46
-
47
-
48
- class _NodeGraphStub:
49
- def GetNumNodes(self):
50
- return 1
51
-
52
- def GetNodeLabel(self, idx):
53
- return ""
54
-
55
- def GetLUT(self, idx):
56
- return ""
57
-
58
- def GetToolsInNode(self, idx):
59
- return []
60
-
61
- def GetNodeCacheMode(self, idx):
62
- return 0
63
-
64
- def GetNodeEnabled(self, idx):
65
- return True
66
-
67
-
68
- class _TimelineStub:
69
- def __init__(self, items_by_track):
70
- self._items = items_by_track # {1: [item, item, ...]}
71
-
72
- def GetTrackCount(self, track_type):
73
- return len(self._items) if track_type == "video" else 0
74
-
75
- def GetItemListInTrack(self, track_type, idx):
76
- if track_type != "video":
77
- return []
78
- return self._items.get(idx, [])
79
-
80
-
81
- class _ProjectStub:
82
- def GetName(self):
83
- return "Test"
84
-
85
- def GetUniqueId(self):
86
- return "p1"
87
-
88
- def GetMediaPool(self):
89
- return None
90
-
91
- def GetColorGroupsList(self):
92
- return []
93
-
94
- def GetGallery(self):
95
- return None
96
-
97
-
98
- class BulkMatchToHeroValidationTest(unittest.TestCase):
99
- def test_missing_hero_id(self):
100
- out = compound._bulk_match_to_hero(_ProjectStub(), {"target_ids": ["x"]})
101
- self.assertIn("error", out)
102
- self.assertEqual(out["error"]["code"], "MISSING_HERO_ID")
103
-
104
- def test_empty_targets(self):
105
- out = compound._bulk_match_to_hero(_ProjectStub(), {"hero_id": "h", "target_ids": []})
106
- self.assertIn("error", out)
107
- self.assertEqual(out["error"]["code"], "MISSING_TARGETS")
108
-
109
- def test_invalid_method(self):
110
- out = compound._bulk_match_to_hero(_ProjectStub(), {"hero_id": "h", "target_ids": ["x"], "method": "garbage"})
111
- self.assertIn("error", out)
112
- self.assertEqual(out["error"]["code"], "INVALID_METHOD")
113
-
114
-
115
- class BulkMatchToHeroDryRunTest(unittest.TestCase):
116
- def setUp(self):
117
- self.hero = _TimelineItemStub("hero-1", name="Hero")
118
- self.target_a = _TimelineItemStub("a-1", name="ShotA")
119
- self.target_b = _TimelineItemStub("b-1", name="ShotB")
120
- self.tl = _TimelineStub({1: [self.hero, self.target_a, self.target_b]})
121
- self.original_get_tl = compound._get_tl
122
- compound._get_tl = lambda: (object(), self.tl, None)
123
-
124
- def tearDown(self):
125
- compound._get_tl = self.original_get_tl
126
-
127
- def test_copy_grade_dry_run_returns_proposals(self):
128
- out = compound._bulk_match_to_hero(
129
- _ProjectStub(),
130
- {"hero_id": "hero-1", "target_ids": ["a-1", "b-1"],
131
- "method": "copy_grade", "dry_run": True},
132
- )
133
- self.assertEqual(out["method"], "copy_grade")
134
- self.assertTrue(out["dry_run"])
135
- self.assertTrue(out["success"])
136
- names = sorted(p["target_id"] for p in out["proposals"])
137
- self.assertEqual(names, ["a-1", "b-1"])
138
- self.assertEqual(self.hero.copy_grades_calls, []) # no mutation
139
-
140
- def test_missing_target_appears_in_blocked(self):
141
- out = compound._bulk_match_to_hero(
142
- _ProjectStub(),
143
- {"hero_id": "hero-1", "target_ids": ["a-1", "missing-1"],
144
- "method": "copy_grade", "dry_run": True},
145
- )
146
- ids_blocked = [b["target_id"] for b in out["blocked"]]
147
- self.assertIn("missing-1", ids_blocked)
148
- self.assertEqual(out["blocked"][0]["error_code"], "TARGET_NOT_FOUND")
149
- # F3 — partial dry-run with at least one valid proposal is a success.
150
- # The blocked entry is reportable information, not a call-level failure.
151
- self.assertTrue(out["success"])
152
- self.assertEqual(len(out["proposals"]), 1)
153
-
154
- def test_dry_run_all_blocked_is_failure(self):
155
- out = compound._bulk_match_to_hero(
156
- _ProjectStub(),
157
- {"hero_id": "hero-1", "target_ids": ["missing-1", "missing-2"],
158
- "method": "copy_grade", "dry_run": True},
159
- )
160
- self.assertEqual(out["proposals"], [])
161
- self.assertEqual(len(out["blocked"]), 2)
162
- # No proposals at all → nothing actionable → success=false.
163
- self.assertFalse(out["success"])
164
-
165
- def test_cdl_delta_method_returns_unsupported_error(self):
166
- out = compound._bulk_match_to_hero(
167
- _ProjectStub(),
168
- {"hero_id": "hero-1", "target_ids": ["a-1"],
169
- "method": "cdl_delta", "dry_run": True},
170
- )
171
- self.assertIn("error", out)
172
- self.assertEqual(out["error"]["code"], "CDL_DELTA_UNIMPLEMENTED")
173
- self.assertEqual(out["error"]["category"], "unsupported")
174
-
175
-
176
- class BulkMatchToHeroExecuteTest(unittest.TestCase):
177
- def setUp(self):
178
- self.hero = _TimelineItemStub("hero-1", name="Hero")
179
- self.target_a = _TimelineItemStub("a-1", name="ShotA")
180
- self.tl = _TimelineStub({1: [self.hero, self.target_a]})
181
- self.original_get_tl = compound._get_tl
182
- compound._get_tl = lambda: (object(), self.tl, None)
183
- compound._CONFIRM_TOKENS.clear()
184
-
185
- def tearDown(self):
186
- compound._get_tl = self.original_get_tl
187
-
188
- def test_execute_without_token_returns_confirm_required(self):
189
- out = compound._bulk_match_to_hero(
190
- _ProjectStub(),
191
- {"hero_id": "hero-1", "target_ids": ["a-1"],
192
- "method": "copy_grade", "dry_run": False},
193
- )
194
- self.assertEqual(out["error"]["category"], "pending_user_decision")
195
- self.assertIn("confirm_token", out)
196
- self.assertEqual(self.hero.copy_grades_calls, [])
197
-
198
- def test_execute_with_token_mutates(self):
199
- # First call: receive token.
200
- first = compound._bulk_match_to_hero(
201
- _ProjectStub(),
202
- {"hero_id": "hero-1", "target_ids": ["a-1"],
203
- "method": "copy_grade", "dry_run": False},
204
- )
205
- token = first["confirm_token"]
206
- # Second call: echo same params + token.
207
- second = compound._bulk_match_to_hero(
208
- _ProjectStub(),
209
- {"hero_id": "hero-1", "target_ids": ["a-1"],
210
- "method": "copy_grade", "dry_run": False,
211
- "confirm_token": token},
212
- )
213
- self.assertTrue(second["success"])
214
- self.assertTrue(second.get("executed"))
215
- self.assertEqual(self.hero.copy_grades_calls, [["a-1"]])
216
-
217
-
218
- if __name__ == "__main__":
219
- unittest.main()
@@ -1,147 +0,0 @@
1
- """Tests for v6 schema additions: caps_events table, refusal logging,
2
- usage history rollup, day-usage reset.
3
- """
4
-
5
- from __future__ import annotations
6
-
7
- import os
8
- import shutil
9
- import tempfile
10
- import time
11
- import unittest
12
-
13
- from src.utils import analysis_caps, timeline_brain_db
14
-
15
-
16
- class CapsEventsTable(unittest.TestCase):
17
- def setUp(self) -> None:
18
- self.tmp = tempfile.mkdtemp(prefix="caps_events_test_")
19
- self.project_root = os.path.join(self.tmp, "project")
20
- os.makedirs(self.project_root, exist_ok=True)
21
-
22
- def tearDown(self) -> None:
23
- timeline_brain_db.reset_for_test(self.project_root)
24
- shutil.rmtree(self.tmp, ignore_errors=True)
25
-
26
- def test_v6_table_created_on_fresh_db(self) -> None:
27
- conn = timeline_brain_db.connect(self.project_root)
28
- rows = conn.execute(
29
- "SELECT name FROM sqlite_master WHERE type='table' AND name='caps_events'"
30
- ).fetchall()
31
- self.assertEqual(len(rows), 1)
32
-
33
- def test_log_caps_event_persists(self) -> None:
34
- result = analysis_caps.log_caps_event(
35
- project_root=self.project_root,
36
- event_type="refusal",
37
- reason="over_clip_cap",
38
- preset="standard",
39
- estimated_vision_tokens=5000,
40
- current_usage={"clip_vision_tokens": 4500},
41
- cap={"clip": 5000},
42
- headroom={"clip": 500},
43
- clip_id="c1",
44
- job_id="j1",
45
- )
46
- self.assertTrue(result["success"])
47
- self.assertIsNotNone(result["row_id"])
48
-
49
- def test_get_caps_events_filters_by_type(self) -> None:
50
- for et in ("refusal", "refusal", "timeout"):
51
- analysis_caps.log_caps_event(
52
- project_root=self.project_root, event_type=et,
53
- reason="x", clip_id="c1",
54
- )
55
- refusals = analysis_caps.get_caps_events(
56
- project_root=self.project_root, event_type="refusal",
57
- )
58
- self.assertEqual(len(refusals), 2)
59
- self.assertTrue(all(e["event_type"] == "refusal" for e in refusals))
60
-
61
- def test_get_caps_events_returns_newest_first(self) -> None:
62
- for reason in ("first", "second", "third"):
63
- analysis_caps.log_caps_event(
64
- project_root=self.project_root, event_type="refusal", reason=reason,
65
- )
66
- events = analysis_caps.get_caps_events(project_root=self.project_root)
67
- self.assertEqual([e["reason"] for e in events], ["third", "second", "first"])
68
-
69
-
70
- class UsageHistoryRollup(unittest.TestCase):
71
- def setUp(self) -> None:
72
- self.tmp = tempfile.mkdtemp(prefix="caps_history_test_")
73
- self.project_root = os.path.join(self.tmp, "project")
74
- os.makedirs(self.project_root, exist_ok=True)
75
-
76
- def tearDown(self) -> None:
77
- timeline_brain_db.reset_for_test(self.project_root)
78
- shutil.rmtree(self.tmp, ignore_errors=True)
79
-
80
- def _seed_day(self, day_bucket: str, vision_tokens: int) -> None:
81
- """Insert a day-scope row with a synthetic day_bucket."""
82
- with timeline_brain_db.transaction(self.project_root) as txn:
83
- txn.execute(
84
- """
85
- INSERT INTO analysis_token_usage(
86
- scope, scope_key, vision_tokens, occurred_at, day_bucket
87
- ) VALUES ('day', NULL, ?, ?, ?)
88
- """,
89
- (vision_tokens, f"{day_bucket}T00:00:00Z", day_bucket),
90
- )
91
-
92
- def test_get_usage_history_aggregates_per_day(self) -> None:
93
- self._seed_day("2026-05-25", 1000)
94
- self._seed_day("2026-05-25", 500) # same day → sum
95
- self._seed_day("2026-05-26", 2000)
96
- rows = analysis_caps.get_usage_history(project_root=self.project_root, days=30)
97
- # Newest first.
98
- by_day = {r["day_bucket"]: r["vision_tokens"] for r in rows}
99
- self.assertEqual(by_day["2026-05-25"], 1500)
100
- self.assertEqual(by_day["2026-05-26"], 2000)
101
-
102
-
103
- class ResetDayUsage(unittest.TestCase):
104
- def setUp(self) -> None:
105
- self.tmp = tempfile.mkdtemp(prefix="caps_reset_test_")
106
- self.project_root = os.path.join(self.tmp, "project")
107
- os.makedirs(self.project_root, exist_ok=True)
108
-
109
- def tearDown(self) -> None:
110
- timeline_brain_db.reset_for_test(self.project_root)
111
- shutil.rmtree(self.tmp, ignore_errors=True)
112
-
113
- def test_reset_day_removes_today_rows_only(self) -> None:
114
- today = time.strftime("%Y-%m-%d", time.gmtime())
115
- # Today: should be deleted.
116
- analysis_caps.record_usage(
117
- project_root=self.project_root, scope="day", scope_key=None, vision_tokens=1000,
118
- )
119
- # Different day: should be preserved.
120
- with timeline_brain_db.transaction(self.project_root) as txn:
121
- txn.execute(
122
- """
123
- INSERT INTO analysis_token_usage(scope, scope_key, vision_tokens, occurred_at, day_bucket)
124
- VALUES ('day', NULL, 500, '2026-05-25T00:00:00Z', '2026-05-25')
125
- """,
126
- )
127
- # Per-clip row: should also be preserved.
128
- analysis_caps.record_usage(
129
- project_root=self.project_root, scope="clip", scope_key="c1", vision_tokens=200,
130
- )
131
-
132
- result = analysis_caps.reset_day_usage(project_root=self.project_root)
133
- self.assertTrue(result["success"])
134
- self.assertGreaterEqual(result["deleted"], 1)
135
-
136
- # Confirm yesterday's day row + the clip row survived.
137
- conn = timeline_brain_db.connect(self.project_root)
138
- rows = conn.execute("SELECT scope, day_bucket FROM analysis_token_usage").fetchall()
139
- scopes = {(r["scope"], r["day_bucket"]) for r in rows}
140
- self.assertIn(("clip", time.strftime("%Y-%m-%d", time.gmtime())), scopes) # today's clip row
141
- # 2026-05-25 day row preserved (assuming we ran today != 2026-05-25; if it IS today the test is still fine because we delete today's)
142
- if today != "2026-05-25":
143
- self.assertIn(("day", "2026-05-25"), scopes)
144
-
145
-
146
- if __name__ == "__main__":
147
- unittest.main()
@@ -1,315 +0,0 @@
1
- """Integration tests for caps enforcement in media_analysis.
2
-
3
- Verifies the helpers added in the caps push:
4
- - _check_caps_pre_call returns a clean refusal dict when over budget
5
- - _record_caps_usage gracefully no-ops without a project_root
6
- - _resolve_active_caps reads the registered providers
7
- - Job_id threading: options.job_id propagates into recorded rows
8
-
9
- No Resolve required.
10
- """
11
-
12
- from __future__ import annotations
13
-
14
- import os
15
- import shutil
16
- import tempfile
17
- import unittest
18
-
19
- from src.utils import analysis_caps, media_analysis, timeline_brain_db
20
-
21
-
22
- class PreCallRefusal(unittest.TestCase):
23
- def setUp(self) -> None:
24
- self.tmp = tempfile.mkdtemp(prefix="caps_integration_test_")
25
- self.project_root = os.path.join(self.tmp, "project")
26
- os.makedirs(self.project_root, exist_ok=True)
27
- # Install a minimal-preset provider so the test deterministically caps.
28
- self._saved_preset = media_analysis._CAPS_PRESET_PROVIDER
29
- self._saved_overrides = media_analysis._CAPS_OVERRIDES_PROVIDER
30
- media_analysis.register_caps_preset_provider(lambda: analysis_caps.PRESET_MINIMAL)
31
- media_analysis.register_caps_overrides_provider(lambda: None)
32
-
33
- def tearDown(self) -> None:
34
- media_analysis._CAPS_PRESET_PROVIDER = self._saved_preset
35
- media_analysis._CAPS_OVERRIDES_PROVIDER = self._saved_overrides
36
- timeline_brain_db.reset_for_test(self.project_root)
37
- shutil.rmtree(self.tmp, ignore_errors=True)
38
-
39
- def test_pre_call_check_allows_when_within_budget(self) -> None:
40
- # Brand-new project — zero usage, ask for a small chunk.
41
- result = media_analysis._check_caps_pre_call(
42
- project_root=self.project_root,
43
- estimated_vision_tokens=500,
44
- clip_id="c1",
45
- )
46
- self.assertIsNone(result, msg=f"unexpected refusal: {result}")
47
-
48
- def test_pre_call_check_refuses_when_over_clip_cap(self) -> None:
49
- # minimal preset = 16_000 tokens per clip; record 15500 then ask 1000.
50
- analysis_caps.record_usage(
51
- project_root=self.project_root, scope=analysis_caps.SCOPE_CLIP,
52
- scope_key="c1", vision_tokens=15_500,
53
- )
54
- result = media_analysis._check_caps_pre_call(
55
- project_root=self.project_root,
56
- estimated_vision_tokens=1000,
57
- clip_id="c1",
58
- )
59
- self.assertIsNotNone(result)
60
- self.assertEqual(result["status"], "caps_exhausted")
61
- self.assertEqual(result["reason"], "over_clip_cap")
62
- self.assertIn("remediation", result)
63
-
64
- def test_pre_call_check_no_project_root_returns_none(self) -> None:
65
- # Without a project_root we can't reach the caps DB; should silently allow.
66
- result = media_analysis._check_caps_pre_call(
67
- project_root=None,
68
- estimated_vision_tokens=10_000_000,
69
- clip_id="c1",
70
- )
71
- self.assertIsNone(result)
72
-
73
- def test_pre_call_check_no_estimated_tokens_returns_none(self) -> None:
74
- # 0 tokens means "we don't know"; default to allow so the pipeline
75
- # isn't blocked when token estimation isn't available.
76
- result = media_analysis._check_caps_pre_call(
77
- project_root=self.project_root,
78
- estimated_vision_tokens=0,
79
- clip_id="c1",
80
- )
81
- self.assertIsNone(result)
82
-
83
-
84
- class JobIdThreading(unittest.TestCase):
85
- def setUp(self) -> None:
86
- self.tmp = tempfile.mkdtemp(prefix="job_id_test_")
87
- self.project_root = os.path.join(self.tmp, "project")
88
- os.makedirs(self.project_root, exist_ok=True)
89
-
90
- def tearDown(self) -> None:
91
- timeline_brain_db.reset_for_test(self.project_root)
92
- shutil.rmtree(self.tmp, ignore_errors=True)
93
-
94
- def test_record_caps_usage_writes_job_scope(self) -> None:
95
- media_analysis._record_caps_usage(
96
- project_root=self.project_root,
97
- clip_id="c1",
98
- job_id="j_abc",
99
- vision_tokens=1000,
100
- )
101
- conn = timeline_brain_db.connect(self.project_root)
102
- scopes = conn.execute(
103
- "SELECT scope, scope_key FROM analysis_token_usage ORDER BY scope"
104
- ).fetchall()
105
- scope_keys = sorted({(r["scope"], r["scope_key"]) for r in scopes})
106
- # Expect rows for clip, day, job
107
- self.assertIn(("clip", "c1"), scope_keys)
108
- self.assertIn(("job", "j_abc"), scope_keys)
109
- self.assertIn(("day", None), scope_keys)
110
-
111
- def test_record_caps_usage_skips_job_when_not_provided(self) -> None:
112
- media_analysis._record_caps_usage(
113
- project_root=self.project_root,
114
- clip_id="c1",
115
- vision_tokens=500,
116
- )
117
- conn = timeline_brain_db.connect(self.project_root)
118
- scopes = {r["scope"] for r in conn.execute(
119
- "SELECT scope FROM analysis_token_usage"
120
- ).fetchall()}
121
- self.assertNotIn("job", scopes)
122
- self.assertIn("clip", scopes)
123
- self.assertIn("day", scopes)
124
-
125
-
126
- class VisionAnalysisRefusalPropagation(unittest.TestCase):
127
- """End-to-end: when caps refuse, `_vision_analysis` must return the
128
- caps_exhausted payload — not overwrite it with the no-frames "skipped"
129
- fallback. Regression for the V3 live-test bug where
130
- `if not payload.get("frame_paths")` discarded the refusal envelope.
131
- """
132
-
133
- def setUp(self) -> None:
134
- self.tmp = tempfile.mkdtemp(prefix="vision_refusal_test_")
135
- # Lay out a plausible clip dir: project_root/clips/<clip_dir>
136
- self.project_root = os.path.join(self.tmp, "project")
137
- self.clip_dir = os.path.join(self.project_root, "clips", "clip_a")
138
- self.frames_dir = os.path.join(self.clip_dir, "frames")
139
- os.makedirs(self.frames_dir, exist_ok=True)
140
- self.frame_path = os.path.join(self.frames_dir, "frame_001.jpg")
141
- with open(self.frame_path, "wb") as fh:
142
- fh.write(b"\xff\xd8\xff\xd9") # minimal JPEG SOI/EOI
143
-
144
- self._saved_preset = media_analysis._CAPS_PRESET_PROVIDER
145
- self._saved_overrides = media_analysis._CAPS_OVERRIDES_PROVIDER
146
- # Force a refusal: day cap = 1 token, so any non-zero estimate exceeds it.
147
- media_analysis.register_caps_preset_provider(lambda: analysis_caps.PRESET_MINIMAL)
148
- media_analysis.register_caps_overrides_provider(lambda: {"vision_tokens_per_day": 1})
149
-
150
- def tearDown(self) -> None:
151
- media_analysis._CAPS_PRESET_PROVIDER = self._saved_preset
152
- media_analysis._CAPS_OVERRIDES_PROVIDER = self._saved_overrides
153
- timeline_brain_db.reset_for_test(self.project_root)
154
- shutil.rmtree(self.tmp, ignore_errors=True)
155
-
156
- def test_vision_analysis_returns_caps_refusal_payload(self) -> None:
157
- record = {"clip_id": "clip_a", "clip_name": "fixture.mp4", "file_path": "/tmp/fixture.mp4"}
158
- motion = {"analysis_keyframes": [{"frame_path": self.frame_path, "time_seconds": 0.0}]}
159
- options = {"vision": {"enabled": True, "provider": "host_chat_paths"}}
160
- artifacts = {
161
- "clip_dir": self.clip_dir,
162
- "visual_json": os.path.join(self.clip_dir, "visual.json"),
163
- }
164
- capabilities = {"vision": {"provider": "host_chat_paths"}}
165
-
166
- payload = media_analysis._vision_analysis(record, motion, options, artifacts, capabilities)
167
-
168
- # Pre-fix this was {success: False, status: "skipped", reason: "No sampled..."}.
169
- # Post-fix the refusal envelope from build_host_chat_paths_payload propagates.
170
- self.assertFalse(payload["success"])
171
- self.assertEqual(payload["status"], "caps_exhausted")
172
- self.assertEqual(payload["reason"], "over_day_cap")
173
- self.assertEqual(payload["preset"], "minimal")
174
- self.assertIn("remediation", payload)
175
-
176
-
177
- class CapsRefusalSurfacing(unittest.TestCase):
178
- """The pre-call refusal must surface as a structured CAPS_REFUSAL envelope
179
- on both the per-clip row and the top-level manifest, so callers don't have
180
- to dig through `manifest.clips[*].error` to know they were budget-blocked.
181
- """
182
-
183
- def _refusal_vision(self) -> dict:
184
- # Shape matches what _check_caps_pre_call returns on refusal.
185
- return {
186
- "success": False,
187
- "status": "caps_exhausted",
188
- "reason": "over_day_cap",
189
- "estimated_vision_tokens": 4000,
190
- "current_usage": {"clip_vision_tokens": 0, "job_vision_tokens": 0, "day_vision_tokens": 0},
191
- "cap": {"clip": 5000, "job": 50000, "day": 1},
192
- "headroom": {"clip": 5000, "job": 50000, "day": 1},
193
- "preset": "minimal",
194
- "remediation": "Raise the cap via media_analysis.set_caps_preset...",
195
- }
196
-
197
- def test_clip_result_gets_structured_caps_refusal_error(self) -> None:
198
- clip_result: dict = {"clip_id": "c1", "success": True}
199
- media_analysis._annotate_clip_vision_failure(clip_result, self._refusal_vision())
200
-
201
- self.assertFalse(clip_result["success"])
202
- error = clip_result["error"]
203
- self.assertIsInstance(error, dict)
204
- self.assertEqual(error["code"], "CAPS_REFUSAL")
205
- self.assertEqual(error["category"], "budget_exhausted")
206
- self.assertEqual(error["reason"], "over_day_cap")
207
- self.assertIn("remediation", error)
208
- self.assertIn("message", error)
209
-
210
- caps_refusal = clip_result["caps_refusal"]
211
- self.assertEqual(caps_refusal["preset"], "minimal")
212
- self.assertEqual(caps_refusal["estimated_vision_tokens"], 4000)
213
- self.assertEqual(caps_refusal["headroom"], {"clip": 5000, "job": 50000, "day": 1})
214
-
215
- def test_clip_result_falls_back_to_generic_message_on_non_caps_failure(self) -> None:
216
- clip_result: dict = {"clip_id": "c1", "success": True}
217
- media_analysis._annotate_clip_vision_failure(
218
- clip_result, {"success": False, "status": "skipped", "reason": "no frames"},
219
- )
220
- self.assertFalse(clip_result["success"])
221
- self.assertEqual(
222
- clip_result["error"], "Visual analysis was requested but did not complete.",
223
- )
224
- self.assertNotIn("caps_refusal", clip_result)
225
-
226
- def test_manifest_lifts_refusal_to_top_level_error(self) -> None:
227
- # Two refused clips, one unrelated success.
228
- clip_a: dict = {"clip_id": "a", "success": True}
229
- clip_b: dict = {"clip_id": "b", "success": True}
230
- clip_ok: dict = {"clip_id": "ok", "success": True}
231
- media_analysis._annotate_clip_vision_failure(clip_a, self._refusal_vision())
232
- media_analysis._annotate_clip_vision_failure(clip_b, self._refusal_vision())
233
-
234
- manifest = {"clips": [clip_a, clip_b, clip_ok], "clip_count": 3}
235
- media_analysis._annotate_manifest_caps_refusal(manifest)
236
-
237
- self.assertEqual(manifest["caps_refusal_clip_count"], 2)
238
- error = manifest["error"]
239
- self.assertEqual(error["code"], "CAPS_REFUSAL")
240
- self.assertEqual(error["category"], "budget_exhausted")
241
- self.assertEqual(error["reason"], "over_day_cap")
242
- self.assertIn("2 of 3", error["message"])
243
-
244
- def test_manifest_no_error_when_no_refusals(self) -> None:
245
- manifest = {"clips": [{"clip_id": "x", "success": True}], "clip_count": 1}
246
- media_analysis._annotate_manifest_caps_refusal(manifest)
247
- self.assertEqual(manifest["caps_refusal_clip_count"], 0)
248
- self.assertNotIn("error", manifest)
249
-
250
-
251
- class CapsRefusalThroughCompactTransform(unittest.TestCase):
252
- """The compact wire transform in server.py must preserve the caps refusal
253
- surfaces added by _annotate_*. Annotate runs on the un-compacted manifest
254
- *before* _compact_manifest_for_response is invoked, so anything not in the
255
- compact whitelist would be silently dropped on the wire.
256
- """
257
-
258
- def _refusal_vision(self) -> dict:
259
- return {
260
- "success": False,
261
- "status": "caps_exhausted",
262
- "reason": "over_day_cap",
263
- "estimated_vision_tokens": 4000,
264
- "current_usage": {"clip_vision_tokens": 0, "job_vision_tokens": 0, "day_vision_tokens": 0},
265
- "cap": {"clip": 5000, "job": 50000, "day": 1},
266
- "headroom": {"clip": 5000, "job": 50000, "day": 1},
267
- "preset": "minimal",
268
- "remediation": "Raise the cap via media_analysis.set_caps_preset...",
269
- }
270
-
271
- def _annotated_manifest(self) -> dict:
272
- clip_a: dict = {"clip_id": "a", "success": True, "record": {"clip_id": "a"}, "visual": self._refusal_vision()}
273
- media_analysis._annotate_clip_vision_failure(clip_a, self._refusal_vision())
274
- manifest = {"clips": [clip_a], "clip_count": 1}
275
- media_analysis._annotate_manifest_caps_refusal(manifest)
276
- return manifest
277
-
278
- def test_compact_manifest_preserves_caps_refusal_clip_count_and_error(self) -> None:
279
- from src import server
280
-
281
- manifest = self._annotated_manifest()
282
- compact = server._compact_manifest_for_response(manifest, verbose=False)
283
-
284
- self.assertEqual(compact["caps_refusal_clip_count"], 1)
285
- error = compact["error"]
286
- self.assertEqual(error["code"], "CAPS_REFUSAL")
287
- self.assertEqual(error["category"], "budget_exhausted")
288
- self.assertEqual(error["reason"], "over_day_cap")
289
- self.assertIn("remediation", error)
290
-
291
- def test_compact_clip_row_preserves_caps_refusal_block(self) -> None:
292
- from src import server
293
-
294
- manifest = self._annotated_manifest()
295
- compact = server._compact_manifest_for_response(manifest, verbose=False)
296
- clip = compact["clips"][0]
297
-
298
- self.assertIsInstance(clip["error"], dict)
299
- self.assertEqual(clip["error"]["code"], "CAPS_REFUSAL")
300
- caps_refusal = clip["caps_refusal"]
301
- self.assertEqual(caps_refusal["preset"], "minimal")
302
- self.assertEqual(caps_refusal["estimated_vision_tokens"], 4000)
303
- self.assertEqual(caps_refusal["cap"], {"clip": 5000, "job": 50000, "day": 1})
304
- self.assertEqual(caps_refusal["headroom"], {"clip": 5000, "job": 50000, "day": 1})
305
-
306
- def test_compact_clip_row_omits_caps_refusal_when_absent(self) -> None:
307
- from src import server
308
-
309
- clip: dict = {"clip_id": "ok", "success": True, "record": {"clip_id": "ok"}}
310
- compact = server._compact_clip_row_for_response(clip)
311
- self.assertNotIn("caps_refusal", compact)
312
-
313
-
314
- if __name__ == "__main__":
315
- unittest.main()