davinci-resolve-mcp 2.57.4 → 2.58.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 (328) hide show
  1. package/AGENTS.md +20 -0
  2. package/CHANGELOG.md +197 -2
  3. package/LICENSE +1 -1
  4. package/README.md +73 -1
  5. package/bin/davinci-resolve-advanced-mcp.mjs +20 -0
  6. package/docs/README.md +19 -0
  7. package/docs/SKILL.md +62 -1
  8. package/docs/contributing.md +1 -1
  9. package/docs/guides/control-panel.md +9 -0
  10. package/docs/kernels/README.md +21 -0
  11. package/docs/kernels/audio-fairlight-kernel.md +22 -0
  12. package/docs/kernels/color-grade-kernel.md +51 -0
  13. package/docs/kernels/fusion-composition-kernel.md +17 -0
  14. package/docs/kernels/media-pool-ingest-kernel.md +20 -0
  15. package/docs/kernels/render-deliver-kernel.md +32 -0
  16. package/docs/kernels/timeline-conform-interchange-kernel.md +39 -0
  17. package/docs/kernels/timeline-edit-kernel.md +17 -0
  18. package/docs/process/release-process.md +29 -7
  19. package/docs/reference/api-coverage.md +1 -1
  20. package/docs/reference/api-limitations.md +38 -1
  21. package/install.py +27 -4
  22. package/package.json +23 -2
  23. package/resolve-advanced/README.md +194 -0
  24. package/resolve-advanced/package.json +50 -0
  25. package/resolve-advanced/server/black-balance.mjs +92 -0
  26. package/resolve-advanced/server/capabilities.mjs +86 -0
  27. package/resolve-advanced/server/cdl-io.mjs +76 -0
  28. package/resolve-advanced/server/contrast-normalize.mjs +180 -0
  29. package/resolve-advanced/server/db-patch.mjs +91 -0
  30. package/resolve-advanced/server/deliverable-entities.mjs +86 -0
  31. package/resolve-advanced/server/deliverable-qc.mjs +270 -0
  32. package/resolve-advanced/server/editorial.mjs +370 -0
  33. package/resolve-advanced/server/exposure-level.mjs +129 -0
  34. package/resolve-advanced/server/extract-frames.mjs +196 -0
  35. package/resolve-advanced/server/ffprobe-media.mjs +88 -0
  36. package/resolve-advanced/server/gamut-legal.mjs +112 -0
  37. package/resolve-advanced/server/grade-body-patch.mjs +246 -0
  38. package/resolve-advanced/server/grade-transfer.mjs +66 -0
  39. package/resolve-advanced/server/group-grade-read.mjs +137 -0
  40. package/resolve-advanced/server/index.mjs +105 -0
  41. package/resolve-advanced/server/lib.mjs +84 -0
  42. package/resolve-advanced/server/libs.mjs +65 -0
  43. package/resolve-advanced/server/lineage-db.mjs +479 -0
  44. package/resolve-advanced/server/lut-apply.mjs +61 -0
  45. package/resolve-advanced/server/match-to-reference.mjs +173 -0
  46. package/resolve-advanced/server/media-inventory.mjs +169 -0
  47. package/resolve-advanced/server/media-ops.mjs +243 -0
  48. package/resolve-advanced/server/node-meta-db.mjs +62 -0
  49. package/resolve-advanced/server/node-provenance.mjs +102 -0
  50. package/resolve-advanced/server/offline-ref-db.mjs +420 -0
  51. package/resolve-advanced/server/offline-ref.mjs +179 -0
  52. package/resolve-advanced/server/project-db.mjs +233 -0
  53. package/resolve-advanced/server/provenance-audit.mjs +210 -0
  54. package/resolve-advanced/server/qc-frame.mjs +224 -0
  55. package/resolve-advanced/server/qc-sampler.mjs +67 -0
  56. package/resolve-advanced/server/readback.mjs +77 -0
  57. package/resolve-advanced/server/render-manifest.mjs +93 -0
  58. package/resolve-advanced/server/reverse-clip-db.mjs +270 -0
  59. package/resolve-advanced/server/runner-apply-contract.mjs +64 -0
  60. package/resolve-advanced/server/runner.mjs +244 -0
  61. package/resolve-advanced/server/saturation-match.mjs +108 -0
  62. package/resolve-advanced/server/scope-read.mjs +257 -0
  63. package/resolve-advanced/server/season-look.mjs +96 -0
  64. package/resolve-advanced/server/shot-intent.mjs +82 -0
  65. package/resolve-advanced/server/shot-match.mjs +147 -0
  66. package/resolve-advanced/server/skin-match.mjs +205 -0
  67. package/resolve-advanced/server/spec-compile.mjs +217 -0
  68. package/resolve-advanced/server/tone-curve-transfer.mjs +184 -0
  69. package/resolve-advanced/server/tool-catalog.mjs +265 -0
  70. package/resolve-advanced/server/tools/audio.mjs +54 -0
  71. package/resolve-advanced/server/tools/audio_plan.mjs +58 -0
  72. package/resolve-advanced/server/tools/capabilities.mjs +16 -0
  73. package/resolve-advanced/server/tools/color_trace.mjs +165 -0
  74. package/resolve-advanced/server/tools/conform.mjs +291 -0
  75. package/resolve-advanced/server/tools/deliverable.mjs +105 -0
  76. package/resolve-advanced/server/tools/drp.mjs +232 -0
  77. package/resolve-advanced/server/tools/drt.mjs +200 -0
  78. package/resolve-advanced/server/tools/drx.mjs +943 -0
  79. package/resolve-advanced/server/tools/editorial.mjs +69 -0
  80. package/resolve-advanced/server/tools/fairlight.mjs +108 -0
  81. package/resolve-advanced/server/tools/fusion.mjs +64 -0
  82. package/resolve-advanced/server/tools/media.mjs +102 -0
  83. package/resolve-advanced/server/tools/offline_ref.mjs +123 -0
  84. package/resolve-advanced/server/tools/pipeline.mjs +137 -0
  85. package/resolve-advanced/server/tools/project_db.mjs +200 -0
  86. package/resolve-advanced/server/tools/project_read.mjs +212 -0
  87. package/resolve-advanced/server/tools/provenance.mjs +73 -0
  88. package/resolve-advanced/server/verify-grade.mjs +113 -0
  89. package/resolve-advanced/server/white-balance-match.mjs +122 -0
  90. package/resolve-advanced/vendor/audio/format-converter.js +330 -0
  91. package/resolve-advanced/vendor/audio/split.js +173 -0
  92. package/resolve-advanced/vendor/audio/trim.js +188 -0
  93. package/resolve-advanced/vendor/audio-fairlight/index.js +391 -0
  94. package/resolve-advanced/vendor/conform-qc/adapters/frame-sampler.js +56 -0
  95. package/resolve-advanced/vendor/conform-qc/adapters/local-ffmpeg-sampler.js +65 -0
  96. package/resolve-advanced/vendor/conform-qc/adapters/rendernode-ffmpeg-sampler.js +50 -0
  97. package/resolve-advanced/vendor/conform-qc/adapters/resolve/driver.py +176 -0
  98. package/resolve-advanced/vendor/conform-qc/adapters/resolve-driver.js +61 -0
  99. package/resolve-advanced/vendor/conform-qc/adapters/resolve-headless-driver.js +86 -0
  100. package/resolve-advanced/vendor/conform-qc/adapters/vision-validator.js +75 -0
  101. package/resolve-advanced/vendor/conform-qc/cli.js +63 -0
  102. package/resolve-advanced/vendor/conform-qc/compare/advisory.js +106 -0
  103. package/resolve-advanced/vendor/conform-qc/compare/decode.js +36 -0
  104. package/resolve-advanced/vendor/conform-qc/compare/index.js +61 -0
  105. package/resolve-advanced/vendor/conform-qc/compare/locate.js +70 -0
  106. package/resolve-advanced/vendor/conform-qc/compare/metrics.js +409 -0
  107. package/resolve-advanced/vendor/conform-qc/docs/runbook.md +72 -0
  108. package/resolve-advanced/vendor/conform-qc/index.js +49 -0
  109. package/resolve-advanced/vendor/conform-qc/knowledge/index.js +110 -0
  110. package/resolve-advanced/vendor/conform-qc/ops/conform-core.js +137 -0
  111. package/resolve-advanced/vendor/conform-qc/ops/conform-diff.js +109 -0
  112. package/resolve-advanced/vendor/conform-qc/ops/insert.js +108 -0
  113. package/resolve-advanced/vendor/conform-qc/ops/local-conform.js +61 -0
  114. package/resolve-advanced/vendor/conform-qc/ops/patch.js +80 -0
  115. package/resolve-advanced/vendor/conform-qc/ops/trigger.js +32 -0
  116. package/resolve-advanced/vendor/conform-qc/ops/verify.js +105 -0
  117. package/resolve-advanced/vendor/conform-qc/ops/workflow.js +30 -0
  118. package/resolve-advanced/vendor/conform-qc/oracle/emulate.js +155 -0
  119. package/resolve-advanced/vendor/conform-qc/oracle/index.js +38 -0
  120. package/resolve-advanced/vendor/conform-qc/oracle/resolve.js +196 -0
  121. package/resolve-advanced/vendor/conform-qc/package.json +16 -0
  122. package/resolve-advanced/vendor/conform-qc/packaging/emit-aaf.js +30 -0
  123. package/resolve-advanced/vendor/conform-qc/packaging/emit-fcp7.js +64 -0
  124. package/resolve-advanced/vendor/conform-qc/packaging/index.js +169 -0
  125. package/resolve-advanced/vendor/conform-qc/packaging/media-ops.js +56 -0
  126. package/resolve-advanced/vendor/conform-qc/packaging/otio.js +50 -0
  127. package/resolve-advanced/vendor/conform-qc/packaging/relink.js +50 -0
  128. package/resolve-advanced/vendor/conform-qc/packaging/surgical-relink.js +195 -0
  129. package/resolve-advanced/vendor/conform-qc/parse/index.js +54 -0
  130. package/resolve-advanced/vendor/conform-qc/parse/merge-dto.js +27 -0
  131. package/resolve-advanced/vendor/conform-qc/parse/xmeml-geometry.js +256 -0
  132. package/resolve-advanced/vendor/conform-qc/reference/burnin-ocr.js +100 -0
  133. package/resolve-advanced/vendor/conform-qc/reference/sidecar.js +37 -0
  134. package/resolve-advanced/vendor/conform-qc/repair/analysis.js +62 -0
  135. package/resolve-advanced/vendor/conform-qc/repair/index.js +78 -0
  136. package/resolve-advanced/vendor/conform-qc/repair/media-analysis.js +139 -0
  137. package/resolve-advanced/vendor/conform-qc/repair/media-index.js +135 -0
  138. package/resolve-advanced/vendor/conform-qc/repair/strategies.js +250 -0
  139. package/resolve-advanced/vendor/conform-qc/report/index.js +133 -0
  140. package/resolve-advanced/vendor/conform-qc/roles/index.js +96 -0
  141. package/resolve-advanced/vendor/conform-qc/synthetic/generate.js +233 -0
  142. package/resolve-advanced/vendor/conform-qc/test/advisory.test.js +85 -0
  143. package/resolve-advanced/vendor/conform-qc/test/cli.test.js +39 -0
  144. package/resolve-advanced/vendor/conform-qc/test/compare.test.js +152 -0
  145. package/resolve-advanced/vendor/conform-qc/test/conform-diff.test.js +70 -0
  146. package/resolve-advanced/vendor/conform-qc/test/emulate.test.js +51 -0
  147. package/resolve-advanced/vendor/conform-qc/test/frame-sampler.test.js +30 -0
  148. package/resolve-advanced/vendor/conform-qc/test/geometry.test.js +112 -0
  149. package/resolve-advanced/vendor/conform-qc/test/knowledge.test.js +56 -0
  150. package/resolve-advanced/vendor/conform-qc/test/lifecycle.test.js +110 -0
  151. package/resolve-advanced/vendor/conform-qc/test/local-ffmpeg-sampler.test.js +66 -0
  152. package/resolve-advanced/vendor/conform-qc/test/locate.test.js +63 -0
  153. package/resolve-advanced/vendor/conform-qc/test/media-analysis.test.js +63 -0
  154. package/resolve-advanced/vendor/conform-qc/test/media-index-normalized.test.js +65 -0
  155. package/resolve-advanced/vendor/conform-qc/test/media-index-origin.test.js +53 -0
  156. package/resolve-advanced/vendor/conform-qc/test/metrics-fast.test.js +91 -0
  157. package/resolve-advanced/vendor/conform-qc/test/oracle-reverse.test.js +86 -0
  158. package/resolve-advanced/vendor/conform-qc/test/oracle.test.js +136 -0
  159. package/resolve-advanced/vendor/conform-qc/test/p0-acceptance.test.js +60 -0
  160. package/resolve-advanced/vendor/conform-qc/test/p1-acceptance.test.js +75 -0
  161. package/resolve-advanced/vendor/conform-qc/test/p45-patch-acceptance.test.js +102 -0
  162. package/resolve-advanced/vendor/conform-qc/test/packaging.test.js +133 -0
  163. package/resolve-advanced/vendor/conform-qc/test/parse-stubs.test.js +28 -0
  164. package/resolve-advanced/vendor/conform-qc/test/repair-strategies.test.js +128 -0
  165. package/resolve-advanced/vendor/conform-qc/test/repair.test.js +84 -0
  166. package/resolve-advanced/vendor/conform-qc/test/report.test.js +52 -0
  167. package/resolve-advanced/vendor/conform-qc/test/resolve-readback.test.js +71 -0
  168. package/resolve-advanced/vendor/conform-qc/test/roles.test.js +107 -0
  169. package/resolve-advanced/vendor/conform-qc/test/runbook.test.js +30 -0
  170. package/resolve-advanced/vendor/conform-qc/test/scale-residual.test.js +40 -0
  171. package/resolve-advanced/vendor/conform-qc/test/sidecar.test.js +51 -0
  172. package/resolve-advanced/vendor/conform-qc/test/smoke.test.js +87 -0
  173. package/resolve-advanced/vendor/conform-qc/test/surgical-relink.test.js +73 -0
  174. package/resolve-advanced/vendor/conform-qc/test/synthetic.test.js +98 -0
  175. package/resolve-advanced/vendor/conform-qc/test/verify.test.js +93 -0
  176. package/resolve-advanced/vendor/conform-qc/test/vision-validator.test.js +43 -0
  177. package/resolve-advanced/vendor/conform-qc/test/workflow-driver.test.js +46 -0
  178. package/resolve-advanced/vendor/conform-qc/toolset/index.js +53 -0
  179. package/resolve-advanced/vendor/drp-format/README.md +116 -0
  180. package/resolve-advanced/vendor/drp-format/__tests__/_resolve-verify.js +39 -0
  181. package/resolve-advanced/vendor/drp-format/__tests__/add-media-clip.test.js +30 -0
  182. package/resolve-advanced/vendor/drp-format/__tests__/assemble-timeline.test.js +68 -0
  183. package/resolve-advanced/vendor/drp-format/__tests__/author-project.test.js +57 -0
  184. package/resolve-advanced/vendor/drp-format/__tests__/composition-text.test.js +98 -0
  185. package/resolve-advanced/vendor/drp-format/__tests__/diff.test.js +272 -0
  186. package/resolve-advanced/vendor/drp-format/__tests__/effect-filters-compressed.test.js +143 -0
  187. package/resolve-advanced/vendor/drp-format/__tests__/fixtures/p0-3-session30-empty-effectfilters.drp +0 -0
  188. package/resolve-advanced/vendor/drp-format/__tests__/fixtures/retimed-timemap-50pct.hex +1 -0
  189. package/resolve-advanced/vendor/drp-format/__tests__/fixtures/retimed-timemap-dynamic.hex +1 -0
  190. package/resolve-advanced/vendor/drp-format/__tests__/inject-grades.test.js +238 -0
  191. package/resolve-advanced/vendor/drp-format/__tests__/keyed-dict.test.js +85 -0
  192. package/resolve-advanced/vendor/drp-format/__tests__/lut-refs.test.js +119 -0
  193. package/resolve-advanced/vendor/drp-format/__tests__/media-blobs.test.js +25 -0
  194. package/resolve-advanced/vendor/drp-format/__tests__/media-timemap.test.js +119 -0
  195. package/resolve-advanced/vendor/drp-format/__tests__/place-fusion-title.test.js +52 -0
  196. package/resolve-advanced/vendor/drp-format/__tests__/place-generator.test.js +40 -0
  197. package/resolve-advanced/vendor/drp-format/__tests__/place-transition.test.js +48 -0
  198. package/resolve-advanced/vendor/drp-format/__tests__/protobuf-wire.test.js +64 -0
  199. package/resolve-advanced/vendor/drp-format/__tests__/relink-media.test.js +106 -0
  200. package/resolve-advanced/vendor/drp-format/__tests__/splice-clips.test.js +256 -0
  201. package/resolve-advanced/vendor/drp-format/assemble-timeline.js +65 -0
  202. package/resolve-advanced/vendor/drp-format/author-project.js +118 -0
  203. package/resolve-advanced/vendor/drp-format/composition-text.js +213 -0
  204. package/resolve-advanced/vendor/drp-format/curves-encoder.js +763 -0
  205. package/resolve-advanced/vendor/drp-format/diff.js +310 -0
  206. package/resolve-advanced/vendor/drp-format/drp-packager.js +201 -0
  207. package/resolve-advanced/vendor/drp-format/drp-validator.js +809 -0
  208. package/resolve-advanced/vendor/drp-format/effect-encoder.js +640 -0
  209. package/resolve-advanced/vendor/drp-format/extract-lut-refs.js +119 -0
  210. package/resolve-advanced/vendor/drp-format/grade-encoder.example.js +133 -0
  211. package/resolve-advanced/vendor/drp-format/grade-encoder.js +401 -0
  212. package/resolve-advanced/vendor/drp-format/grade-encoder.test.js +171 -0
  213. package/resolve-advanced/vendor/drp-format/grade-encoder.verify.js +249 -0
  214. package/resolve-advanced/vendor/drp-format/grade-node-extractor.js +495 -0
  215. package/resolve-advanced/vendor/drp-format/grade-parameter-decoder.js +774 -0
  216. package/resolve-advanced/vendor/drp-format/index.js +174 -0
  217. package/resolve-advanced/vendor/drp-format/inject-grades.js +219 -0
  218. package/resolve-advanced/vendor/drp-format/keyed-dict.js +227 -0
  219. package/resolve-advanced/vendor/drp-format/marker-encoder.js +532 -0
  220. package/resolve-advanced/vendor/drp-format/media-blobs.js +53 -0
  221. package/resolve-advanced/vendor/drp-format/media-timemap.js +164 -0
  222. package/resolve-advanced/vendor/drp-format/mp-folder-builder.js +293 -0
  223. package/resolve-advanced/vendor/drp-format/node-tree-encoder.js +1246 -0
  224. package/resolve-advanced/vendor/drp-format/package.json +18 -0
  225. package/resolve-advanced/vendor/drp-format/place-fusion-title.js +131 -0
  226. package/resolve-advanced/vendor/drp-format/place-generator.js +77 -0
  227. package/resolve-advanced/vendor/drp-format/place-transition.js +91 -0
  228. package/resolve-advanced/vendor/drp-format/power-window-encoder.js +776 -0
  229. package/resolve-advanced/vendor/drp-format/protobuf-wire.js +111 -0
  230. package/resolve-advanced/vendor/drp-format/qualifier-encoder.js +706 -0
  231. package/resolve-advanced/vendor/drp-format/relink-media.js +218 -0
  232. package/resolve-advanced/vendor/drp-format/rich-title-encoder.js +447 -0
  233. package/resolve-advanced/vendor/drp-format/seq-container-builder.js +572 -0
  234. package/resolve-advanced/vendor/drp-format/seq-surgery.js +155 -0
  235. package/resolve-advanced/vendor/drp-format/splice-clips.js +445 -0
  236. package/resolve-advanced/vendor/drp-format/templates/empty-project.drp +0 -0
  237. package/resolve-advanced/vendor/drp-format/templates/fusion-title.xml +56 -0
  238. package/resolve-advanced/vendor/drp-format/templates/generator-solid-color.xml +21 -0
  239. package/resolve-advanced/vendor/drp-format/templates/media-clip-h264.drp +0 -0
  240. package/resolve-advanced/vendor/drp-format/templates/transition-cross-dissolve.xml +22 -0
  241. package/resolve-advanced/vendor/drp-format/tool-registry.descriptor.js +80 -0
  242. package/resolve-advanced/vendor/drp-format/utils/safe-archive.js +54 -0
  243. package/resolve-advanced/vendor/drp-format/xml-builder.js +759 -0
  244. package/resolve-advanced/vendor/drt-format/__tests__/_resolve-verify.js +21 -0
  245. package/resolve-advanced/vendor/drt-format/__tests__/build.test.js +113 -0
  246. package/resolve-advanced/vendor/drt-format/__tests__/multi-format.test.js +93 -0
  247. package/resolve-advanced/vendor/drt-format/__tests__/parse-real-resolve21.test.js +51 -0
  248. package/resolve-advanced/vendor/drt-format/__tests__/parse.test.js +134 -0
  249. package/resolve-advanced/vendor/drt-format/__tests__/resolve-versions.test.js +120 -0
  250. package/resolve-advanced/vendor/drt-format/__tests__/schema-fingerprint.test.js +62 -0
  251. package/resolve-advanced/vendor/drt-format/__tests__/smoke.test.js +27 -0
  252. package/resolve-advanced/vendor/drt-format/__tests__/validate.test.js +109 -0
  253. package/resolve-advanced/vendor/drt-format/capabilities.js +69 -0
  254. package/resolve-advanced/vendor/drt-format/capability-domains.js +56 -0
  255. package/resolve-advanced/vendor/drt-format/drt-builder.js +42 -0
  256. package/resolve-advanced/vendor/drt-format/drt-parser.js +164 -0
  257. package/resolve-advanced/vendor/drt-format/drt-validator.js +98 -0
  258. package/resolve-advanced/vendor/drt-format/index.js +45 -0
  259. package/resolve-advanced/vendor/drt-format/package.json +17 -0
  260. package/resolve-advanced/vendor/drt-format/resolve-versions.js +153 -0
  261. package/resolve-advanced/vendor/drt-format/schema-fingerprint.js +74 -0
  262. package/resolve-advanced/vendor/drt-format/templates/drt-project-shell.xml +124 -0
  263. package/resolve-advanced/vendor/drx-codec/__tests__/curves-roundtrip.test.js +148 -0
  264. package/resolve-advanced/vendor/drx-codec/__tests__/fixtures/p2-1-face-refinement.drx +58 -0
  265. package/resolve-advanced/vendor/drx-codec/__tests__/fixtures/p2-1-filmgrain.drx +58 -0
  266. package/resolve-advanced/vendor/drx-codec/__tests__/fixtures/p2-1-glow.drx +58 -0
  267. package/resolve-advanced/vendor/drx-codec/__tests__/fixtures/p2-1-lens-flare.drx +58 -0
  268. package/resolve-advanced/vendor/drx-codec/__tests__/fixtures/p2-3-beauty-25.drx +58 -0
  269. package/resolve-advanced/vendor/drx-codec/__tests__/fixtures/p2-3-beauty-75.drx +58 -0
  270. package/resolve-advanced/vendor/drx-codec/__tests__/fixtures/p5-1-node-no-lut.drx +58 -0
  271. package/resolve-advanced/vendor/drx-codec/__tests__/fixtures/p5-1-node-with-lut.drx +58 -0
  272. package/resolve-advanced/vendor/drx-codec/__tests__/hsl-curves-roundtrip.test.js +117 -0
  273. package/resolve-advanced/vendor/drx-codec/__tests__/lut-refs-roundtrip.test.js +112 -0
  274. package/resolve-advanced/vendor/drx-codec/__tests__/matte-roundtrip.test.js +167 -0
  275. package/resolve-advanced/vendor/drx-codec/__tests__/ofx-roundtrip.test.js +215 -0
  276. package/resolve-advanced/vendor/drx-codec/__tests__/ofx-slugs-discovery.test.js +149 -0
  277. package/resolve-advanced/vendor/drx-codec/__tests__/power-window-roundtrip.test.js +230 -0
  278. package/resolve-advanced/vendor/drx-codec/__tests__/qualifier-roundtrip.test.js +226 -0
  279. package/resolve-advanced/vendor/drx-codec/cdl-exporter.js +470 -0
  280. package/resolve-advanced/vendor/drx-codec/color-nlp-parser.js +833 -0
  281. package/resolve-advanced/vendor/drx-codec/data/color-nlp-action-mappings.json +2232 -0
  282. package/resolve-advanced/vendor/drx-codec/drx-generator.js +4123 -0
  283. package/resolve-advanced/vendor/drx-codec/drx-merger.js +320 -0
  284. package/resolve-advanced/vendor/drx-codec/drx-parser.js +1808 -0
  285. package/resolve-advanced/vendor/drx-codec/extract-custom-curves.js +215 -0
  286. package/resolve-advanced/vendor/drx-codec/extract-hsl-curves.js +180 -0
  287. package/resolve-advanced/vendor/drx-codec/extract-lut-refs.js +158 -0
  288. package/resolve-advanced/vendor/drx-codec/extract-matte-finesse.js +83 -0
  289. package/resolve-advanced/vendor/drx-codec/extract-ofx-params.js +226 -0
  290. package/resolve-advanced/vendor/drx-codec/extract-power-window.js +184 -0
  291. package/resolve-advanced/vendor/drx-codec/extract-qualifier.js +99 -0
  292. package/resolve-advanced/vendor/drx-codec/index.js +109 -0
  293. package/resolve-advanced/vendor/drx-codec/node-layout.js +249 -0
  294. package/resolve-advanced/vendor/drx-codec/resolved-drx-generator.js +393 -0
  295. package/resolve-advanced/vendor/drx-codec/tool-resolver.js +974 -0
  296. package/resolve-advanced/vendor/drx-codec/training-examples.js +548 -0
  297. package/resolve-advanced/vendor/drx-codec/vocabulary-intents.js +539 -0
  298. package/resolve-advanced/vendor/drx-parameters/CALIBRATION-STATUS.md +319 -0
  299. package/resolve-advanced/vendor/drx-parameters/DRX-VALUE-SCALING.md +251 -0
  300. package/resolve-advanced/vendor/drx-parameters/calibrated-ranges.json +17737 -0
  301. package/resolve-advanced/vendor/drx-parameters/corrector-types.js +120 -0
  302. package/resolve-advanced/vendor/drx-parameters/index.js +193 -0
  303. package/resolve-advanced/vendor/drx-parameters/parameter-codec.js +451 -0
  304. package/resolve-advanced/vendor/drx-parameters/parameter-ids.js +1292 -0
  305. package/resolve-advanced/vendor/drx-parameters/parameter-ranges.js +570 -0
  306. package/resolve-advanced/vendor/drx-parameters/parameter-validator.js +392 -0
  307. package/resolve-advanced/vendor/drx-parameters/resolvefx-registry.json +14973 -0
  308. package/resolve-advanced/vendor/drx-parameters/tool-registry.descriptor.js +38 -0
  309. package/resolve-advanced/vendor/drx-parameters/tools/drx-analyzer.js +371 -0
  310. package/resolve-advanced/vendor/fairlight/index.js +833 -0
  311. package/resolve-advanced/vendor/fusion-codec/composition-generator.js +401 -0
  312. package/resolve-advanced/vendor/fusion-codec/templates/blur-region.js +103 -0
  313. package/resolve-advanced/vendor/fusion-codec/templates/color-correct.js +87 -0
  314. package/resolve-advanced/vendor/fusion-codec/templates/film-grain.js +106 -0
  315. package/resolve-advanced/vendor/fusion-codec/templates/lower-third.js +241 -0
  316. package/resolve-advanced/vendor/fusion-codec/templates/picture-in-picture.js +188 -0
  317. package/resolve-advanced/vendor/fusion-codec/templates/text-overlay.js +161 -0
  318. package/resolve-advanced/vendor/fusion-codec/templates/title-card.js +184 -0
  319. package/resolve-advanced/vendor/fusion-codec/templates/vignette.js +107 -0
  320. package/resolve-advanced/vendor/fusion-codec/templates/watermark.js +101 -0
  321. package/scripts/agent-rules/README.md +68 -0
  322. package/src/analysis_dashboard.py +233 -1
  323. package/src/granular/common.py +1 -1
  324. package/src/server.py +479 -29
  325. package/src/utils/api_truth.py +117 -0
  326. package/src/utils/cut_ir.py +1 -1
  327. package/src/utils/failure_tracker.py +0 -2
  328. package/src/utils/timeline_xml.py +405 -0
@@ -0,0 +1,120 @@
1
+ /**
2
+ * DRX Corrector Type Definitions
3
+ *
4
+ * Correctors are the building blocks of DaVinci Resolve color nodes.
5
+ * Each corrector type controls a specific aspect of the grade.
6
+ *
7
+ * @module drx-parameters/corrector-types
8
+ */
9
+
10
+ /**
11
+ * Corrector type identifiers used in DRX protobuf format
12
+ */
13
+ const CORRECTOR_TYPES = {
14
+ PRIMARY: 1, // Lift/Gamma/Gain/Offset/Saturation/Temp/Tint/Curves/HDR/RGBMixer/ColorWarper
15
+ QUALIFIER: 2, // HSL/RGB/Luma/3D Qualifier (0x0830xxxx range) — was 'CONTRAST'
16
+ WINDOW_SOFTNESS: 3, // Power Window softness mask shape (0x0870xxxx) — was 'SATURATION'
17
+ POWER_WINDOW: 4, // Power Window position/size/type (0x0850xxxx) — was 'HUE'
18
+ LUM_MIX: 5, // Luma vs Saturation curves
19
+ OFFSET: 6, // Offset corrector
20
+ MATTE_FINESSE: 9, // Matte Finesse (0x0C30002x) + KEY palette (0x0C30001x) — was 'HDR_ZONE'
21
+ MOTION_EFFECTS: 15, // Motion Effects palette: spatial/temporal NR + motion blur (0x0C4000xx) — measured 2026-07-02
22
+ CURVES: 18, // RGB/Luma custom curves (legacy)
23
+
24
+ // Backwards compatibility aliases
25
+ CONTRAST: 2, // @deprecated — use QUALIFIER
26
+ SATURATION: 3, // @deprecated — use WINDOW_SOFTNESS
27
+ HUE: 4, // @deprecated — use POWER_WINDOW
28
+ HDR_ZONE: 9, // @deprecated — use MATTE_FINESSE
29
+
30
+ // High-bit compound types — window shape variants (discovered 2026-03-22)
31
+ LINEAR_WINDOW: 0x10003, // 65539 — Linear window softness shape (0x10000 + 3)
32
+ GRADIENT_WINDOW: 0x10012, // 65554 — Gradient window shape (0x10000 + 18)
33
+
34
+ // High-bit compound types (Magic Mask / Object Mask)
35
+ MAGIC_MASK: 0x10001, // 0x10000 + base type 1 (Primary)
36
+ OBJECT_MASK: 0x20001, // 0x20000 + base type 1 (Primary)
37
+ };
38
+
39
+ /**
40
+ * Human-readable names for corrector types
41
+ * CORRECTED 2026-03-22: Types 2/3/4/9 were misidentified before the March 16 calibration.
42
+ */
43
+ const CORRECTOR_NAMES = {
44
+ [CORRECTOR_TYPES.PRIMARY]: 'Primary',
45
+ [CORRECTOR_TYPES.QUALIFIER]: 'Qualifier',
46
+ [CORRECTOR_TYPES.WINDOW_SOFTNESS]: 'WindowSoftness',
47
+ [CORRECTOR_TYPES.POWER_WINDOW]: 'PowerWindow',
48
+ [CORRECTOR_TYPES.LUM_MIX]: 'LumMix',
49
+ [CORRECTOR_TYPES.OFFSET]: 'Offset',
50
+ [CORRECTOR_TYPES.MATTE_FINESSE]: 'MatteFinesse',
51
+ [CORRECTOR_TYPES.MOTION_EFFECTS]: 'MotionEffects',
52
+ [CORRECTOR_TYPES.CURVES]: 'Curves',
53
+ [CORRECTOR_TYPES.LINEAR_WINDOW]: 'LinearWindow',
54
+ [CORRECTOR_TYPES.GRADIENT_WINDOW]: 'GradientWindow',
55
+ [CORRECTOR_TYPES.MAGIC_MASK]: 'MagicMask',
56
+ [CORRECTOR_TYPES.OBJECT_MASK]: 'ObjectMask',
57
+ };
58
+
59
+ /**
60
+ * Presence marker IDs required for Resolve to recognize corrector types.
61
+ * These are written to the F2 presence list in the protobuf.
62
+ */
63
+ const PRESENCE_MARKER_IDS = {
64
+ [CORRECTOR_TYPES.CONTRAST]: 0x88300001,
65
+ [CORRECTOR_TYPES.SATURATION]: 0x8870001e,
66
+ [CORRECTOR_TYPES.HUE]: 0x88500010,
67
+ [CORRECTOR_TYPES.LUM_MIX]: 0x88b00012,
68
+ [CORRECTOR_TYPES.OFFSET]: 0x88d00014,
69
+ [CORRECTOR_TYPES.CURVES]: 0x88f0000d,
70
+ };
71
+
72
+ /**
73
+ * Get the name for a corrector type
74
+ * @param {number} type - Corrector type ID
75
+ * @returns {string} Human-readable name or "Type{id}" for unknown types
76
+ */
77
+ function getCorrectorName(type) {
78
+ return CORRECTOR_NAMES[type] || `Type${type}`;
79
+ }
80
+
81
+ /**
82
+ * Get presence marker ID for a corrector type
83
+ * @param {number} type - Corrector type ID
84
+ * @returns {number|null} Presence marker ID or null if not applicable
85
+ */
86
+ function getPresenceMarker(type) {
87
+ return PRESENCE_MARKER_IDS[type] || null;
88
+ }
89
+
90
+ /**
91
+ * Check if a corrector type uses full parameter blocks
92
+ * (vs. presence marker only)
93
+ * @param {number} type - Corrector type ID
94
+ * @returns {boolean}
95
+ */
96
+ function hasFullParameterBlock(type) {
97
+ return type === CORRECTOR_TYPES.PRIMARY ||
98
+ type === CORRECTOR_TYPES.QUALIFIER ||
99
+ type === CORRECTOR_TYPES.POWER_WINDOW ||
100
+ type === CORRECTOR_TYPES.WINDOW_SOFTNESS ||
101
+ type === CORRECTOR_TYPES.MATTE_FINESSE;
102
+ }
103
+
104
+ /**
105
+ * Get all supported corrector types
106
+ * @returns {number[]}
107
+ */
108
+ function getAllCorrectorTypes() {
109
+ return Object.values(CORRECTOR_TYPES);
110
+ }
111
+
112
+ module.exports = {
113
+ CORRECTOR_TYPES,
114
+ CORRECTOR_NAMES,
115
+ PRESENCE_MARKER_IDS,
116
+ getCorrectorName,
117
+ getPresenceMarker,
118
+ hasFullParameterBlock,
119
+ getAllCorrectorTypes,
120
+ };
@@ -0,0 +1,193 @@
1
+ /**
2
+ * DRX Parameter Library
3
+ *
4
+ * Unified parameter definitions, encoding, and validation for
5
+ * DaVinci Resolve's DRX grade format.
6
+ *
7
+ * This library provides a single source of truth for:
8
+ * - Parameter IDs and mappings
9
+ * - Value ranges and defaults
10
+ * - Protobuf encoding/decoding
11
+ * - Validation and correction
12
+ *
13
+ * Used across the The project platform for consistent DRX handling.
14
+ *
15
+ * @module drx-parameters
16
+ *
17
+ * @example
18
+ * const drx = require('drx-parameters');
19
+ *
20
+ * // Get parameter info
21
+ * const info = drx.getParamInfo(100663320); // { control: 'lift', channel: 'r' }
22
+ *
23
+ * // Validate parameters
24
+ * const result = drx.validateAll({ lift: { r: 0.5 } });
25
+ *
26
+ * // Encode for DRX
27
+ * const buffer = drx.encodeParameters({ [drx.LIFT.R]: 0.5 });
28
+ */
29
+
30
+ // Import all modules
31
+ const correctorTypes = require('./corrector-types');
32
+ const parameterIds = require('./parameter-ids');
33
+ const parameterRanges = require('./parameter-ranges');
34
+ const parameterCodec = require('./parameter-codec');
35
+ const parameterValidator = require('./parameter-validator');
36
+
37
+ // Re-export everything
38
+ module.exports = {
39
+ // ========================================================================
40
+ // Corrector Types
41
+ // ========================================================================
42
+ CORRECTOR_TYPES: correctorTypes.CORRECTOR_TYPES,
43
+ CORRECTOR_NAMES: correctorTypes.CORRECTOR_NAMES,
44
+ PRESENCE_MARKER_IDS: correctorTypes.PRESENCE_MARKER_IDS,
45
+ getCorrectorName: correctorTypes.getCorrectorName,
46
+ getPresenceMarker: correctorTypes.getPresenceMarker,
47
+ hasFullParameterBlock: correctorTypes.hasFullParameterBlock,
48
+ getAllCorrectorTypes: correctorTypes.getAllCorrectorTypes,
49
+
50
+ // ========================================================================
51
+ // Parameter IDs
52
+ // ========================================================================
53
+ LIFT: parameterIds.LIFT,
54
+ GAIN: parameterIds.GAIN,
55
+ GAMMA: parameterIds.GAMMA,
56
+ OFFSET: parameterIds.OFFSET,
57
+ SATURATION: parameterIds.SATURATION,
58
+ TEMP_TINT: parameterIds.TEMP_TINT,
59
+ CONTRAST: parameterIds.CONTRAST,
60
+ LOG_WHEELS: parameterIds.LOG_WHEELS,
61
+ HUE: parameterIds.HUE,
62
+ LUM_MIX: parameterIds.LUM_MIX,
63
+ SAT_VS_SAT: parameterIds.SAT_VS_SAT,
64
+ HDR_ZONE: parameterIds.HDR_ZONE,
65
+ CURVES: parameterIds.CURVES,
66
+ RGB_MIXER: parameterIds.RGB_MIXER,
67
+ CUSTOM_CURVES: parameterIds.CUSTOM_CURVES,
68
+ HSL_CURVES: parameterIds.HSL_CURVES,
69
+ ADDITIONAL: parameterIds.ADDITIONAL,
70
+ HSL_QUALIFIER: parameterIds.HSL_QUALIFIER,
71
+ MATTE_FINESSE: parameterIds.MATTE_FINESSE,
72
+ POWER_WINDOWS: parameterIds.POWER_WINDOWS,
73
+ GRADIENT_WINDOW: parameterIds.GRADIENT_WINDOW,
74
+ POLYGON_WINDOW: parameterIds.POLYGON_WINDOW,
75
+ COLOR_WARPER: parameterIds.COLOR_WARPER,
76
+ NODE_LUT_REF: parameterIds.NODE_LUT_REF,
77
+ COLORSLICE: parameterIds.COLORSLICE,
78
+ BLUR_PALETTE: parameterIds.BLUR_PALETTE,
79
+ KEY_PALETTE: parameterIds.KEY_PALETTE,
80
+ MOTION_EFFECTS: parameterIds.MOTION_EFFECTS,
81
+ RESOLVEFX: parameterIds.RESOLVEFX,
82
+ PARAM_ID_MAP: parameterIds.PARAM_ID_MAP,
83
+ getParamInfo: parameterIds.getParamInfo,
84
+ getParamIdsForControl: parameterIds.getParamIdsForControl,
85
+ isKnownParam: parameterIds.isKnownParam,
86
+ getKnownParamCount: parameterIds.getKnownParamCount,
87
+
88
+ // ========================================================================
89
+ // Parameter Ranges
90
+ // ========================================================================
91
+ PARAMETER_RANGES: parameterRanges.PARAMETER_RANGES,
92
+ VISUAL_IMPACT_WEIGHTS: parameterRanges.VISUAL_IMPACT_WEIGHTS,
93
+ getRange: parameterRanges.getRange,
94
+ getDefault: parameterRanges.getDefault,
95
+ clamp: parameterRanges.clamp,
96
+ normalize: parameterRanges.normalize,
97
+ denormalize: parameterRanges.denormalize,
98
+ isDefault: parameterRanges.isDefault,
99
+ formatValue: parameterRanges.formatValue,
100
+ getAllDefaults: parameterRanges.getAllDefaults,
101
+ getVisualImpactWeight: parameterRanges.getVisualImpactWeight,
102
+
103
+ // ========================================================================
104
+ // Parameter Codec
105
+ // ========================================================================
106
+ // Protobuf primitives
107
+ encodeVarint: parameterCodec.encodeVarint,
108
+ decodeVarint: parameterCodec.decodeVarint,
109
+ encodeSignedVarint: parameterCodec.encodeSignedVarint,
110
+ decodeSignedVarint: parameterCodec.decodeSignedVarint,
111
+ encodeFloat32: parameterCodec.encodeFloat32,
112
+ decodeFloat32: parameterCodec.decodeFloat32,
113
+ encodeFixed32: parameterCodec.encodeFixed32,
114
+ decodeFixed32: parameterCodec.decodeFixed32,
115
+ encodeFixed64: parameterCodec.encodeFixed64,
116
+ decodeFixed64: parameterCodec.decodeFixed64,
117
+ encodeLengthDelimited: parameterCodec.encodeLengthDelimited,
118
+
119
+ // Field encoding
120
+ WIRE_TYPES: parameterCodec.WIRE_TYPES,
121
+ encodeFieldTag: parameterCodec.encodeFieldTag,
122
+ decodeFieldTag: parameterCodec.decodeFieldTag,
123
+
124
+ // Parameter encoding
125
+ encodeParameter: parameterCodec.encodeParameter,
126
+ encodeParameters: parameterCodec.encodeParameters,
127
+ semanticToRaw: parameterCodec.semanticToRaw,
128
+ rawToSemantic: parameterCodec.rawToSemantic,
129
+
130
+ // Merging
131
+ MERGE_STRATEGIES: parameterCodec.MERGE_STRATEGIES,
132
+ getMergeStrategy: parameterCodec.getMergeStrategy,
133
+ mergeNodeParams: parameterCodec.mergeNodeParams,
134
+
135
+ // ========================================================================
136
+ // Parameter Validation
137
+ // ========================================================================
138
+ SEVERITY: parameterValidator.SEVERITY,
139
+ PROFESSIONAL_LIMITS: parameterValidator.PROFESSIONAL_LIMITS,
140
+ BROADCAST_LIMITS: parameterValidator.BROADCAST_LIMITS,
141
+ ValidationResult: parameterValidator.ValidationResult,
142
+ validateParameter: parameterValidator.validateParameter,
143
+ validateProfessional: parameterValidator.validateProfessional,
144
+ validateBroadcast: parameterValidator.validateBroadcast,
145
+ validateAll: parameterValidator.validateAll,
146
+ autoCorrect: parameterValidator.autoCorrect,
147
+ hasActualGrade: parameterValidator.hasActualGrade,
148
+ getAdjustmentSummary: parameterValidator.getAdjustmentSummary,
149
+ calculateImpactScore: parameterValidator.calculateImpactScore,
150
+
151
+ // ========================================================================
152
+ // Convenience Constants
153
+ // ========================================================================
154
+
155
+ /**
156
+ * Total count of known parameter IDs
157
+ */
158
+ TOTAL_KNOWN_PARAMS: parameterIds.getKnownParamCount(),
159
+
160
+ /**
161
+ * Version of this library
162
+ */
163
+ VERSION: '1.0.0',
164
+
165
+ // ========================================================================
166
+ // ResolveFX plugin registry (full 105-plugin universe, built 2026-07-03)
167
+ // ========================================================================
168
+
169
+ /**
170
+ * The complete ResolveFX plugin universe for Resolve 19.1.3, with param/enum
171
+ * CANDIDATES from a binary factory-block scan and EXACT `paramsObserved` decoded
172
+ * from real project grades. Decode does NOT need this (OFX params are
173
+ * self-describing on the wire) — it assists authoring/enum lookup.
174
+ */
175
+ RESOLVEFX_REGISTRY: require('./resolvefx-registry.json'),
176
+
177
+ /**
178
+ * Look up a ResolveFX registry entry by wire id, full plugin id, or short name
179
+ * (case-insensitive). Returns null when unknown.
180
+ */
181
+ lookupResolveFX(idOrName) {
182
+ const reg = module.exports.RESOLVEFX_REGISTRY;
183
+ if (!idOrName) return null;
184
+ const q = String(idOrName).toLowerCase();
185
+ const short = q.replace('com.blackmagicdesign.resolvefx.', '');
186
+ if (reg[short] && reg[short].wireId) return reg[short];
187
+ for (const [k, v] of Object.entries(reg)) {
188
+ if (k === '_meta' || !v.wireId) continue;
189
+ if (v.wireId === q || (v.pluginId && v.pluginId.toLowerCase() === q) || k === short) return v;
190
+ }
191
+ return null;
192
+ },
193
+ };