@vibesdotdev/media 0.0.0-stage → 1.0.0-rc.3

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 (278) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +95 -2
  3. package/dist/analyzers/frame-guard.d.ts +6 -0
  4. package/dist/analyzers/frame-guard.d.ts.map +1 -0
  5. package/dist/analyzers/frame-guard.js +10 -0
  6. package/dist/analyzers/frame-guard.js.map +1 -0
  7. package/dist/analyzers/motion-math.d.ts +66 -0
  8. package/dist/analyzers/motion-math.d.ts.map +1 -0
  9. package/dist/analyzers/motion-math.js +356 -0
  10. package/dist/analyzers/motion-math.js.map +1 -0
  11. package/dist/analyzers/reference-motion-analyzer.impl.d.ts +23 -0
  12. package/dist/analyzers/reference-motion-analyzer.impl.d.ts.map +1 -0
  13. package/dist/analyzers/reference-motion-analyzer.impl.js +69 -0
  14. package/dist/analyzers/reference-motion-analyzer.impl.js.map +1 -0
  15. package/dist/analyzers/reference-motion.descriptor.d.ts +11 -0
  16. package/dist/analyzers/reference-motion.descriptor.d.ts.map +1 -0
  17. package/dist/analyzers/reference-motion.descriptor.js +21 -0
  18. package/dist/analyzers/reference-motion.descriptor.js.map +1 -0
  19. package/dist/capture-client.d.ts +34 -0
  20. package/dist/capture-client.d.ts.map +1 -0
  21. package/dist/capture-client.js +163 -0
  22. package/dist/capture-client.js.map +1 -0
  23. package/dist/config/media.uploads.config.descriptor.d.ts +27 -0
  24. package/dist/config/media.uploads.config.descriptor.d.ts.map +1 -0
  25. package/dist/config/media.uploads.config.descriptor.js +46 -0
  26. package/dist/config/media.uploads.config.descriptor.js.map +1 -0
  27. package/dist/config/uploads.d.ts +11 -0
  28. package/dist/config/uploads.d.ts.map +1 -0
  29. package/dist/config/uploads.js +25 -0
  30. package/dist/config/uploads.js.map +1 -0
  31. package/dist/docs/artifact-references.docs.descriptor.d.ts +4 -0
  32. package/dist/docs/artifact-references.docs.descriptor.d.ts.map +1 -0
  33. package/dist/docs/artifact-references.docs.descriptor.js +69 -0
  34. package/dist/docs/artifact-references.docs.descriptor.js.map +1 -0
  35. package/dist/docs/image-transform.docs.descriptor.d.ts +4 -0
  36. package/dist/docs/image-transform.docs.descriptor.d.ts.map +1 -0
  37. package/dist/docs/image-transform.docs.descriptor.js +52 -0
  38. package/dist/docs/image-transform.docs.descriptor.js.map +1 -0
  39. package/dist/index.d.ts +48 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +49 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/interfaces/capture-provider.d.ts +33 -0
  44. package/dist/interfaces/capture-provider.d.ts.map +1 -0
  45. package/dist/interfaces/capture-provider.js +10 -0
  46. package/dist/interfaces/capture-provider.js.map +1 -0
  47. package/dist/interfaces/image-transformer.d.ts +7 -0
  48. package/dist/interfaces/image-transformer.d.ts.map +1 -0
  49. package/dist/interfaces/image-transformer.js +2 -0
  50. package/dist/interfaces/image-transformer.js.map +1 -0
  51. package/dist/interfaces/index.d.ts +7 -0
  52. package/dist/interfaces/index.d.ts.map +1 -0
  53. package/dist/interfaces/index.js +5 -0
  54. package/dist/interfaces/index.js.map +1 -0
  55. package/dist/interfaces/motion-analyzer.d.ts +55 -0
  56. package/dist/interfaces/motion-analyzer.d.ts.map +1 -0
  57. package/dist/interfaces/motion-analyzer.js +14 -0
  58. package/dist/interfaces/motion-analyzer.js.map +1 -0
  59. package/dist/kinds/capture.d.ts +58 -0
  60. package/dist/kinds/capture.d.ts.map +1 -0
  61. package/dist/kinds/capture.js +34 -0
  62. package/dist/kinds/capture.js.map +1 -0
  63. package/dist/kinds/image-transform.d.ts +91 -0
  64. package/dist/kinds/image-transform.d.ts.map +1 -0
  65. package/dist/kinds/image-transform.js +12 -0
  66. package/dist/kinds/image-transform.js.map +1 -0
  67. package/dist/kinds/index.d.ts +10 -0
  68. package/dist/kinds/index.d.ts.map +1 -0
  69. package/dist/kinds/index.js +7 -0
  70. package/dist/kinds/index.js.map +1 -0
  71. package/dist/kinds/motion.d.ts +57 -0
  72. package/dist/kinds/motion.d.ts.map +1 -0
  73. package/dist/kinds/motion.js +34 -0
  74. package/dist/kinds/motion.js.map +1 -0
  75. package/dist/media.plugin.d.ts +23 -0
  76. package/dist/media.plugin.d.ts.map +1 -0
  77. package/dist/media.plugin.js +48 -0
  78. package/dist/media.plugin.js.map +1 -0
  79. package/dist/schemas/artifact-reference.d.ts +59 -0
  80. package/dist/schemas/artifact-reference.d.ts.map +1 -0
  81. package/dist/schemas/artifact-reference.js +77 -0
  82. package/dist/schemas/artifact-reference.js.map +1 -0
  83. package/dist/schemas/capture-descriptor.d.ts +71 -0
  84. package/dist/schemas/capture-descriptor.d.ts.map +1 -0
  85. package/dist/schemas/capture-descriptor.js +74 -0
  86. package/dist/schemas/capture-descriptor.js.map +1 -0
  87. package/dist/schemas/capture-options.d.ts +51 -0
  88. package/dist/schemas/capture-options.d.ts.map +1 -0
  89. package/dist/schemas/capture-options.js +68 -0
  90. package/dist/schemas/capture-options.js.map +1 -0
  91. package/dist/schemas/capture-parse.d.ts +10 -0
  92. package/dist/schemas/capture-parse.d.ts.map +1 -0
  93. package/dist/schemas/capture-parse.js +30 -0
  94. package/dist/schemas/capture-parse.js.map +1 -0
  95. package/dist/schemas/capture-state.d.ts +77 -0
  96. package/dist/schemas/capture-state.d.ts.map +1 -0
  97. package/dist/schemas/capture-state.js +25 -0
  98. package/dist/schemas/capture-state.js.map +1 -0
  99. package/dist/schemas/image-transform.d.ts +269 -0
  100. package/dist/schemas/image-transform.d.ts.map +1 -0
  101. package/dist/schemas/image-transform.js +161 -0
  102. package/dist/schemas/image-transform.js.map +1 -0
  103. package/dist/schemas/index.d.ts +20 -0
  104. package/dist/schemas/index.d.ts.map +1 -0
  105. package/dist/schemas/index.js +17 -0
  106. package/dist/schemas/index.js.map +1 -0
  107. package/dist/schemas/motion-analysis.d.ts +187 -0
  108. package/dist/schemas/motion-analysis.d.ts.map +1 -0
  109. package/dist/schemas/motion-analysis.js +213 -0
  110. package/dist/schemas/motion-analysis.js.map +1 -0
  111. package/dist/schemas/motion-descriptor.d.ts +53 -0
  112. package/dist/schemas/motion-descriptor.d.ts.map +1 -0
  113. package/dist/schemas/motion-descriptor.js +47 -0
  114. package/dist/schemas/motion-descriptor.js.map +1 -0
  115. package/dist/schemas/motion-frame.d.ts +63 -0
  116. package/dist/schemas/motion-frame.d.ts.map +1 -0
  117. package/dist/schemas/motion-frame.js +86 -0
  118. package/dist/schemas/motion-frame.js.map +1 -0
  119. package/dist/schemas/opaque-id.d.ts +10 -0
  120. package/dist/schemas/opaque-id.d.ts.map +1 -0
  121. package/dist/schemas/opaque-id.js +24 -0
  122. package/dist/schemas/opaque-id.js.map +1 -0
  123. package/dist/schemas/sharing-state.d.ts +43 -0
  124. package/dist/schemas/sharing-state.d.ts.map +1 -0
  125. package/dist/schemas/sharing-state.js +11 -0
  126. package/dist/schemas/sharing-state.js.map +1 -0
  127. package/dist/svelte/CaptureLoader.svelte +29 -0
  128. package/dist/svelte/CaptureLoader.svelte.d.ts +11 -0
  129. package/dist/svelte/CaptureLoader.svelte.d.ts.map +1 -0
  130. package/dist/svelte/CapturePanel.svelte +189 -0
  131. package/dist/svelte/CapturePanel.svelte.d.ts +12 -0
  132. package/dist/svelte/CapturePanel.svelte.d.ts.map +1 -0
  133. package/dist/svelte/MediaUploader.svelte +109 -0
  134. package/dist/svelte/MediaUploader.svelte.d.ts +5 -0
  135. package/dist/svelte/MediaUploader.svelte.d.ts.map +1 -0
  136. package/dist/svelte/capture-parse.d.ts +2 -0
  137. package/dist/svelte/capture-parse.d.ts.map +1 -0
  138. package/dist/svelte/capture-parse.js +1 -0
  139. package/dist/svelte/failure-message.d.ts +2 -0
  140. package/dist/svelte/failure-message.d.ts.map +1 -0
  141. package/dist/svelte/failure-message.js +1 -0
  142. package/dist/svelte/index.d.ts +8 -0
  143. package/dist/svelte/index.d.ts.map +1 -0
  144. package/dist/svelte/index.js +6 -0
  145. package/dist/svelte/runtime-log.d.ts +14 -0
  146. package/dist/svelte/runtime-log.d.ts.map +1 -0
  147. package/dist/svelte/runtime-log.js +19 -0
  148. package/dist/svelte/runtime.d.ts +9 -0
  149. package/dist/svelte/runtime.d.ts.map +1 -0
  150. package/dist/svelte/runtime.js +27 -0
  151. package/dist/svelte/sharing/README.md +38 -0
  152. package/dist/svelte/sharing/components/ShareButton.svelte +57 -0
  153. package/dist/svelte/sharing/components/ShareButton.svelte.d.ts +11 -0
  154. package/dist/svelte/sharing/components/ShareButton.svelte.d.ts.map +1 -0
  155. package/dist/svelte/sharing/components/ShareDialog.svelte +222 -0
  156. package/dist/svelte/sharing/components/ShareDialog.svelte.d.ts +8 -0
  157. package/dist/svelte/sharing/components/ShareDialog.svelte.d.ts.map +1 -0
  158. package/dist/svelte/sharing/components/ShareLoader.svelte +19 -0
  159. package/dist/svelte/sharing/components/ShareLoader.svelte.d.ts +7 -0
  160. package/dist/svelte/sharing/components/ShareLoader.svelte.d.ts.map +1 -0
  161. package/dist/svelte/sharing/index.d.ts +20 -0
  162. package/dist/svelte/sharing/index.d.ts.map +1 -0
  163. package/dist/svelte/sharing/index.js +19 -0
  164. package/dist/svelte/sharing/runtime.d.ts +44 -0
  165. package/dist/svelte/sharing/runtime.d.ts.map +1 -0
  166. package/dist/svelte/sharing/runtime.js +81 -0
  167. package/dist/svelte/sharing/state.svelte.d.ts +28 -0
  168. package/dist/svelte/sharing/state.svelte.d.ts.map +1 -0
  169. package/dist/svelte/sharing/state.svelte.js +101 -0
  170. package/dist/svelte/sharing/styles.css +8 -0
  171. package/dist/svelte/state.svelte.d.ts +38 -0
  172. package/dist/svelte/state.svelte.d.ts.map +1 -0
  173. package/dist/svelte/state.svelte.js +102 -0
  174. package/dist/svelte/styles.css +2 -0
  175. package/dist/svelte/uploader.d.ts +17 -0
  176. package/dist/svelte/uploader.d.ts.map +1 -0
  177. package/dist/svelte/uploader.js +9 -0
  178. package/dist/uploads/adapters/local/index.d.ts +9 -0
  179. package/dist/uploads/adapters/local/index.d.ts.map +1 -0
  180. package/dist/uploads/adapters/local/index.js +12 -0
  181. package/dist/uploads/adapters/local/index.js.map +1 -0
  182. package/dist/uploads/adapters/local/local-storage.descriptor.d.ts +24 -0
  183. package/dist/uploads/adapters/local/local-storage.descriptor.d.ts.map +1 -0
  184. package/dist/uploads/adapters/local/local-storage.descriptor.js +20 -0
  185. package/dist/uploads/adapters/local/local-storage.descriptor.js.map +1 -0
  186. package/dist/uploads/adapters/local/local-storage.impl.d.ts +123 -0
  187. package/dist/uploads/adapters/local/local-storage.impl.d.ts.map +1 -0
  188. package/dist/uploads/adapters/local/local-storage.impl.js +231 -0
  189. package/dist/uploads/adapters/local/local-storage.impl.js.map +1 -0
  190. package/dist/uploads/adapters/local/uploads-adapter-local.plugin.d.ts +9 -0
  191. package/dist/uploads/adapters/local/uploads-adapter-local.plugin.d.ts.map +1 -0
  192. package/dist/uploads/adapters/local/uploads-adapter-local.plugin.js +41 -0
  193. package/dist/uploads/adapters/local/uploads-adapter-local.plugin.js.map +1 -0
  194. package/dist/uploads/client/helper.d.ts +26 -0
  195. package/dist/uploads/client/helper.d.ts.map +1 -0
  196. package/dist/uploads/client/helper.js +27 -0
  197. package/dist/uploads/client/helper.js.map +1 -0
  198. package/dist/uploads/client/index.d.ts +11 -0
  199. package/dist/uploads/client/index.d.ts.map +1 -0
  200. package/dist/uploads/client/index.js +9 -0
  201. package/dist/uploads/client/index.js.map +1 -0
  202. package/dist/uploads/client/sharing-client.d.ts +45 -0
  203. package/dist/uploads/client/sharing-client.d.ts.map +1 -0
  204. package/dist/uploads/client/sharing-client.js +153 -0
  205. package/dist/uploads/client/sharing-client.js.map +1 -0
  206. package/dist/uploads/client/uploads-client.d.ts +200 -0
  207. package/dist/uploads/client/uploads-client.d.ts.map +1 -0
  208. package/dist/uploads/client/uploads-client.js +487 -0
  209. package/dist/uploads/client/uploads-client.js.map +1 -0
  210. package/dist/uploads/docs/uploads.docs.descriptor.d.ts +4 -0
  211. package/dist/uploads/docs/uploads.docs.descriptor.d.ts.map +1 -0
  212. package/dist/uploads/docs/uploads.docs.descriptor.js +65 -0
  213. package/dist/uploads/docs/uploads.docs.descriptor.js.map +1 -0
  214. package/dist/uploads/docs/uploads.share-links.docs.descriptor.d.ts +22 -0
  215. package/dist/uploads/docs/uploads.share-links.docs.descriptor.d.ts.map +1 -0
  216. package/dist/uploads/docs/uploads.share-links.docs.descriptor.js +86 -0
  217. package/dist/uploads/docs/uploads.share-links.docs.descriptor.js.map +1 -0
  218. package/dist/uploads/index.d.ts +12 -0
  219. package/dist/uploads/index.d.ts.map +1 -0
  220. package/dist/uploads/index.js +13 -0
  221. package/dist/uploads/index.js.map +1 -0
  222. package/dist/uploads/schemas/common.d.ts +135 -0
  223. package/dist/uploads/schemas/common.d.ts.map +1 -0
  224. package/dist/uploads/schemas/common.js +152 -0
  225. package/dist/uploads/schemas/common.js.map +1 -0
  226. package/dist/uploads/schemas/forms.d.ts +59 -0
  227. package/dist/uploads/schemas/forms.d.ts.map +1 -0
  228. package/dist/uploads/schemas/forms.js +41 -0
  229. package/dist/uploads/schemas/forms.js.map +1 -0
  230. package/dist/uploads/schemas/index.d.ts +18 -0
  231. package/dist/uploads/schemas/index.d.ts.map +1 -0
  232. package/dist/uploads/schemas/index.js +13 -0
  233. package/dist/uploads/schemas/index.js.map +1 -0
  234. package/dist/uploads/schemas/records.d.ts +81 -0
  235. package/dist/uploads/schemas/records.d.ts.map +1 -0
  236. package/dist/uploads/schemas/records.js +82 -0
  237. package/dist/uploads/schemas/records.js.map +1 -0
  238. package/dist/uploads/schemas/requests.d.ts +32 -0
  239. package/dist/uploads/schemas/requests.d.ts.map +1 -0
  240. package/dist/uploads/schemas/requests.js +30 -0
  241. package/dist/uploads/schemas/requests.js.map +1 -0
  242. package/dist/uploads/schemas/shares.d.ts +67 -0
  243. package/dist/uploads/schemas/shares.d.ts.map +1 -0
  244. package/dist/uploads/schemas/shares.js +39 -0
  245. package/dist/uploads/schemas/shares.js.map +1 -0
  246. package/dist/uploads/server/backend.d.ts +8 -0
  247. package/dist/uploads/server/backend.d.ts.map +1 -0
  248. package/dist/uploads/server/backend.js +11 -0
  249. package/dist/uploads/server/backend.js.map +1 -0
  250. package/dist/uploads/server/config.d.ts +5 -0
  251. package/dist/uploads/server/config.d.ts.map +1 -0
  252. package/dist/uploads/server/config.js +38 -0
  253. package/dist/uploads/server/config.js.map +1 -0
  254. package/dist/uploads/server/service.d.ts +77 -0
  255. package/dist/uploads/server/service.d.ts.map +1 -0
  256. package/dist/uploads/server/service.js +152 -0
  257. package/dist/uploads/server/service.js.map +1 -0
  258. package/dist/uploads/server/storage-client.d.ts +11 -0
  259. package/dist/uploads/server/storage-client.d.ts.map +1 -0
  260. package/dist/uploads/server/storage-client.js +23 -0
  261. package/dist/uploads/server/storage-client.js.map +1 -0
  262. package/dist/uploads/server/storage.d.ts +40 -0
  263. package/dist/uploads/server/storage.d.ts.map +1 -0
  264. package/dist/uploads/server/storage.js +59 -0
  265. package/dist/uploads/server/storage.js.map +1 -0
  266. package/dist/uploads/uploads.plugin.d.ts +11 -0
  267. package/dist/uploads/uploads.plugin.d.ts.map +1 -0
  268. package/dist/uploads/uploads.plugin.js +89 -0
  269. package/dist/uploads/uploads.plugin.js.map +1 -0
  270. package/dist/utils/attempt.d.ts +27 -0
  271. package/dist/utils/attempt.d.ts.map +1 -0
  272. package/dist/utils/attempt.js +39 -0
  273. package/dist/utils/attempt.js.map +1 -0
  274. package/dist/utils/failure-message.d.ts +8 -0
  275. package/dist/utils/failure-message.d.ts.map +1 -0
  276. package/dist/utils/failure-message.js +28 -0
  277. package/dist/utils/failure-message.js.map +1 -0
  278. package/package.json +257 -4
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Motion Analysis Options + Result Schemas
3
+ *
4
+ * The option/result shapes for each `MotionAnalyzer` primitive. Per-pixel
5
+ * maps (`Float32Array`) are opt-in (`includeMap` / `includeMaps`) because
6
+ * they are large; scalar summaries are always returned so agents and vision
7
+ * models can branch on a compact JSON payload.
8
+ */
9
+ import * as z from 'zod/v4';
10
+ /** A rectangular region in downscaled-analysis pixel space. */
11
+ export declare const RegionSchema: z.ZodObject<{
12
+ x: z.ZodNumber;
13
+ y: z.ZodNumber;
14
+ width: z.ZodNumber;
15
+ height: z.ZodNumber;
16
+ }, z.core.$strip>;
17
+ export type Region = z.infer<typeof RegionSchema>;
18
+ /** Options for `frameDiff(a, b)`. */
19
+ export declare const FrameDiffOptionsSchema: z.ZodObject<{
20
+ downscale: z.ZodOptional<z.ZodNumber>;
21
+ threshold: z.ZodOptional<z.ZodNumber>;
22
+ includeMap: z.ZodOptional<z.ZodBoolean>;
23
+ }, z.core.$strip>;
24
+ export type FrameDiffOptions = z.infer<typeof FrameDiffOptionsSchema>;
25
+ /** Result of `frameDiff(a, b)`. */
26
+ export declare const FrameDiffResultSchema: z.ZodObject<{
27
+ magnitude: z.ZodNumber;
28
+ changedFraction: z.ZodNumber;
29
+ width: z.ZodNumber;
30
+ height: z.ZodNumber;
31
+ bbox: z.ZodNullable<z.ZodObject<{
32
+ x: z.ZodNumber;
33
+ y: z.ZodNumber;
34
+ width: z.ZodNumber;
35
+ height: z.ZodNumber;
36
+ }, z.core.$strip>>;
37
+ map: z.ZodOptional<z.ZodInstanceOf<Float32Array<ArrayBuffer>>>;
38
+ }, z.core.$strip>;
39
+ export type FrameDiffResult = z.infer<typeof FrameDiffResultSchema>;
40
+ /** Options for `temporalStats(frames)`. */
41
+ export declare const TemporalStatsOptionsSchema: z.ZodObject<{
42
+ downscale: z.ZodOptional<z.ZodNumber>;
43
+ includeMaps: z.ZodOptional<z.ZodBoolean>;
44
+ }, z.core.$strip>;
45
+ export type TemporalStatsOptions = z.infer<typeof TemporalStatsOptionsSchema>;
46
+ /**
47
+ * Result of `temporalStats(frames)`.
48
+ *
49
+ * The per-pixel temporal standard deviation is the cheapest "does anything
50
+ * move here" statistic — it is exactly the naive aggregation that leaks a
51
+ * ghost of hidden structure even without a motion model.
52
+ */
53
+ export declare const TemporalStatsResultSchema: z.ZodObject<{
54
+ meanStd: z.ZodNumber;
55
+ peakStd: z.ZodNumber;
56
+ width: z.ZodNumber;
57
+ height: z.ZodNumber;
58
+ std: z.ZodOptional<z.ZodInstanceOf<Float32Array<ArrayBuffer>>>;
59
+ mean: z.ZodOptional<z.ZodInstanceOf<Float32Array<ArrayBuffer>>>;
60
+ }, z.core.$strip>;
61
+ export type TemporalStatsResult = z.infer<typeof TemporalStatsResultSchema>;
62
+ /** Options for `opticalFlow(a, b)` (block-matching). */
63
+ export declare const OpticalFlowOptionsSchema: z.ZodObject<{
64
+ downscale: z.ZodOptional<z.ZodNumber>;
65
+ blockSize: z.ZodOptional<z.ZodNumber>;
66
+ searchRadius: z.ZodOptional<z.ZodNumber>;
67
+ step: z.ZodOptional<z.ZodNumber>;
68
+ minConfidence: z.ZodOptional<z.ZodNumber>;
69
+ }, z.core.$strip>;
70
+ export type OpticalFlowOptions = z.infer<typeof OpticalFlowOptionsSchema>;
71
+ /** A single block-motion estimate. */
72
+ export declare const FlowVectorSchema: z.ZodObject<{
73
+ x: z.ZodNumber;
74
+ y: z.ZodNumber;
75
+ dx: z.ZodNumber;
76
+ dy: z.ZodNumber;
77
+ confidence: z.ZodNumber;
78
+ }, z.core.$strip>;
79
+ export type FlowVector = z.infer<typeof FlowVectorSchema>;
80
+ /** Result of `opticalFlow(a, b)`. */
81
+ export declare const OpticalFlowResultSchema: z.ZodObject<{
82
+ vectors: z.ZodArray<z.ZodObject<{
83
+ x: z.ZodNumber;
84
+ y: z.ZodNumber;
85
+ dx: z.ZodNumber;
86
+ dy: z.ZodNumber;
87
+ confidence: z.ZodNumber;
88
+ }, z.core.$strip>>;
89
+ meanDx: z.ZodNumber;
90
+ meanDy: z.ZodNumber;
91
+ meanConfidence: z.ZodNumber;
92
+ width: z.ZodNumber;
93
+ height: z.ZodNumber;
94
+ blockSize: z.ZodNumber;
95
+ }, z.core.$strip>;
96
+ export type OpticalFlowResult = z.infer<typeof OpticalFlowResultSchema>;
97
+ /** A candidate motion direction (integer per-frame shift, analysis pixels). */
98
+ export declare const MotionDirectionSchema: z.ZodObject<{
99
+ dx: z.ZodNumber;
100
+ dy: z.ZodNumber;
101
+ }, z.core.$strip>;
102
+ export type MotionDirection = z.infer<typeof MotionDirectionSchema>;
103
+ /** Options for `motionEnergy(frames)` (Reichardt / lag-1 cross-correlation). */
104
+ export declare const MotionEnergyOptionsSchema: z.ZodObject<{
105
+ downscale: z.ZodOptional<z.ZodNumber>;
106
+ maxDim: z.ZodOptional<z.ZodNumber>;
107
+ directions: z.ZodOptional<z.ZodArray<z.ZodObject<{
108
+ dx: z.ZodNumber;
109
+ dy: z.ZodNumber;
110
+ }, z.core.$strip>>>;
111
+ shiftRadius: z.ZodOptional<z.ZodNumber>;
112
+ includeMap: z.ZodOptional<z.ZodBoolean>;
113
+ }, z.core.$strip>;
114
+ export type MotionEnergyOptions = z.infer<typeof MotionEnergyOptionsSchema>;
115
+ /** Strength of coherent motion in one candidate direction. */
116
+ export declare const DirectionStrengthSchema: z.ZodObject<{
117
+ dx: z.ZodNumber;
118
+ dy: z.ZodNumber;
119
+ strength: z.ZodNumber;
120
+ }, z.core.$strip>;
121
+ export type DirectionStrength = z.infer<typeof DirectionStrengthSchema>;
122
+ /**
123
+ * Result of `motionEnergy(frames)`.
124
+ *
125
+ * `coherence` is the discriminator the passage turns on: coherently drifting
126
+ * structure scores high, temporally independent twinkle scores ~0, because
127
+ * the opponent (Reichardt) subtraction cancels non-directional correlation.
128
+ */
129
+ export declare const MotionEnergyResultSchema: z.ZodObject<{
130
+ coherence: z.ZodNumber;
131
+ dominant: z.ZodObject<{
132
+ dx: z.ZodNumber;
133
+ dy: z.ZodNumber;
134
+ strength: z.ZodNumber;
135
+ }, z.core.$strip>;
136
+ perDirection: z.ZodArray<z.ZodObject<{
137
+ dx: z.ZodNumber;
138
+ dy: z.ZodNumber;
139
+ strength: z.ZodNumber;
140
+ }, z.core.$strip>>;
141
+ width: z.ZodNumber;
142
+ height: z.ZodNumber;
143
+ map: z.ZodOptional<z.ZodInstanceOf<Float32Array<ArrayBuffer>>>;
144
+ }, z.core.$strip>;
145
+ export type MotionEnergyResult = z.infer<typeof MotionEnergyResultSchema>;
146
+ /** Coarse classification of what a frame sequence is doing. */
147
+ export declare const MotionVerdictSchema: z.ZodUnion<readonly [z.ZodLiteral<"static">, z.ZodLiteral<"coherent-motion">, z.ZodLiteral<"incoherent-change">]>;
148
+ export type MotionVerdict = z.infer<typeof MotionVerdictSchema>;
149
+ /** Options for `summarize(frames)`. */
150
+ export declare const MotionSummaryOptionsSchema: z.ZodObject<{
151
+ downscale: z.ZodOptional<z.ZodNumber>;
152
+ coherenceThreshold: z.ZodOptional<z.ZodNumber>;
153
+ staticThreshold: z.ZodOptional<z.ZodNumber>;
154
+ }, z.core.$strip>;
155
+ export type MotionSummaryOptions = z.infer<typeof MotionSummaryOptionsSchema>;
156
+ /**
157
+ * Compact, agent-facing summary of a frame sequence — "what happened between
158
+ * these samples" distilled to a payload a vision model or planner can act on.
159
+ */
160
+ export declare const MotionSummarySchema: z.ZodObject<{
161
+ frameCount: z.ZodNumber;
162
+ changed: z.ZodObject<{
163
+ magnitude: z.ZodNumber;
164
+ changedFraction: z.ZodNumber;
165
+ bbox: z.ZodNullable<z.ZodObject<{
166
+ x: z.ZodNumber;
167
+ y: z.ZodNumber;
168
+ width: z.ZodNumber;
169
+ height: z.ZodNumber;
170
+ }, z.core.$strip>>;
171
+ }, z.core.$strip>;
172
+ motion: z.ZodObject<{
173
+ coherence: z.ZodNumber;
174
+ dominant: z.ZodObject<{
175
+ dx: z.ZodNumber;
176
+ dy: z.ZodNumber;
177
+ strength: z.ZodNumber;
178
+ }, z.core.$strip>;
179
+ }, z.core.$strip>;
180
+ temporal: z.ZodObject<{
181
+ meanStd: z.ZodNumber;
182
+ peakStd: z.ZodNumber;
183
+ }, z.core.$strip>;
184
+ verdict: z.ZodUnion<readonly [z.ZodLiteral<"static">, z.ZodLiteral<"coherent-motion">, z.ZodLiteral<"incoherent-change">]>;
185
+ }, z.core.$strip>;
186
+ export type MotionSummary = z.infer<typeof MotionSummarySchema>;
187
+ //# sourceMappingURL=motion-analysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion-analysis.d.ts","sourceRoot":"","sources":["../../src/schemas/motion-analysis.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,+DAA+D;AAC/D,eAAO,MAAM,YAAY;;;;;iBAKvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAIlD,qCAAqC;AACrC,eAAO,MAAM,sBAAsB;;;;iBAYjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,mCAAmC;AACnC,eAAO,MAAM,qBAAqB;;;;;;;;;;;;iBAkBhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAIpE,2CAA2C;AAC3C,eAAO,MAAM,0BAA0B;;;iBAMrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;iBAkBpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAI5E,wDAAwD;AACxD,eAAO,MAAM,wBAAwB;;;;;;iBAenC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,sCAAsC;AACtC,eAAO,MAAM,gBAAgB;;;;;;iBAW3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,qCAAqC;AACrC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAqBlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAIxE,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,gFAAgF;AAChF,eAAO,MAAM,yBAAyB;;;;;;;;;iBAqBpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,8DAA8D;AAC9D,eAAO,MAAM,uBAAuB;;;;iBAKlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;iBAkBnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAI1E,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,mHAI9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,uCAAuC;AACvC,eAAO,MAAM,0BAA0B;;;;iBASrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;iBAyB9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Motion Analysis Options + Result Schemas
3
+ *
4
+ * The option/result shapes for each `MotionAnalyzer` primitive. Per-pixel
5
+ * maps (`Float32Array`) are opt-in (`includeMap` / `includeMaps`) because
6
+ * they are large; scalar summaries are always returned so agents and vision
7
+ * models can branch on a compact JSON payload.
8
+ */
9
+ import * as z from 'zod/v4';
10
+ /** A rectangular region in downscaled-analysis pixel space. */
11
+ export const RegionSchema = z.object({
12
+ x: z.number().int().nonnegative(),
13
+ y: z.number().int().nonnegative(),
14
+ width: z.number().int().positive(),
15
+ height: z.number().int().positive()
16
+ });
17
+ // ── frameDiff ──────────────────────────────────────────────────────────────
18
+ /** Options for `frameDiff(a, b)`. */
19
+ export const FrameDiffOptionsSchema = z.object({
20
+ /** Integer downscale factor applied before diffing (1 = native). Speeds up large frames. */
21
+ downscale: z.number().int().positive().optional(),
22
+ /**
23
+ * Per-pixel absolute-luma-difference threshold (0..1) above which a pixel
24
+ * counts as "changed" for `changedFraction` / `bbox`. Default 0.08.
25
+ */
26
+ threshold: z.number().min(0).max(1).optional(),
27
+ /** Include the per-pixel normalized diff map in the result. */
28
+ includeMap: z.boolean().optional()
29
+ });
30
+ /** Result of `frameDiff(a, b)`. */
31
+ export const FrameDiffResultSchema = z.object({
32
+ /** Mean absolute luma difference across the frame, normalized to 0..1. */
33
+ magnitude: z.number().min(0).max(1),
34
+ /** Fraction of pixels whose change exceeded `threshold` (0..1). */
35
+ changedFraction: z.number().min(0).max(1),
36
+ /** Analysis-space width (after downscale). */
37
+ width: z.number().int().positive(),
38
+ /** Analysis-space height (after downscale). */
39
+ height: z.number().int().positive(),
40
+ /** Tight bounding box of changed pixels, or null when nothing changed. */
41
+ bbox: RegionSchema.nullable(),
42
+ /** Per-pixel normalized abs-diff map (0..1), row-major. Present iff `includeMap`. */
43
+ map: z.instanceof(Float32Array).optional()
44
+ });
45
+ // ── temporalStats ────────────────────────────────────────────────────────────
46
+ /** Options for `temporalStats(frames)`. */
47
+ export const TemporalStatsOptionsSchema = z.object({
48
+ /** Integer downscale factor (1 = native). */
49
+ downscale: z.number().int().positive().optional(),
50
+ /** Include per-pixel mean + std maps in the result. */
51
+ includeMaps: z.boolean().optional()
52
+ });
53
+ /**
54
+ * Result of `temporalStats(frames)`.
55
+ *
56
+ * The per-pixel temporal standard deviation is the cheapest "does anything
57
+ * move here" statistic — it is exactly the naive aggregation that leaks a
58
+ * ghost of hidden structure even without a motion model.
59
+ */
60
+ export const TemporalStatsResultSchema = z.object({
61
+ /** Mean per-pixel temporal std across the frame, normalized 0..1. */
62
+ meanStd: z.number().min(0).max(1),
63
+ /** Maximum per-pixel temporal std, normalized 0..1. */
64
+ peakStd: z.number().min(0).max(1),
65
+ /** Analysis-space width. */
66
+ width: z.number().int().positive(),
67
+ /** Analysis-space height. */
68
+ height: z.number().int().positive(),
69
+ /** Per-pixel temporal std map (0..1). Present iff `includeMaps`. */
70
+ std: z.instanceof(Float32Array).optional(),
71
+ /** Per-pixel temporal mean map (0..1). Present iff `includeMaps`. */
72
+ mean: z.instanceof(Float32Array).optional()
73
+ });
74
+ // ── opticalFlow ──────────────────────────────────────────────────────────────
75
+ /** Options for `opticalFlow(a, b)` (block-matching). */
76
+ export const OpticalFlowOptionsSchema = z.object({
77
+ /** Integer downscale factor (1 = native). */
78
+ downscale: z.number().int().positive().optional(),
79
+ /** Square block edge length in analysis pixels. Default 16. */
80
+ blockSize: z.number().int().positive().optional(),
81
+ /** Max per-axis search displacement in analysis pixels. Default 8. */
82
+ searchRadius: z.number().int().positive().optional(),
83
+ /** Grid stride between block origins. Defaults to `blockSize` (non-overlapping). */
84
+ step: z.number().int().positive().optional(),
85
+ /** Minimum distinctiveness (0..1) for a vector to count toward the means. Default 0.05. */
86
+ minConfidence: z.number().min(0).max(1).optional()
87
+ });
88
+ /** A single block-motion estimate. */
89
+ export const FlowVectorSchema = z.object({
90
+ /** Block origin x (analysis space). */
91
+ x: z.number().int().nonnegative(),
92
+ /** Block origin y (analysis space). */
93
+ y: z.number().int().nonnegative(),
94
+ /** Estimated horizontal displacement (analysis pixels; +right). */
95
+ dx: z.number().int(),
96
+ /** Estimated vertical displacement (analysis pixels; +down). */
97
+ dy: z.number().int(),
98
+ /** Distinctiveness of the match, 0..1 (gap between best and runner-up). */
99
+ confidence: z.number().min(0).max(1)
100
+ });
101
+ /** Result of `opticalFlow(a, b)`. */
102
+ export const OpticalFlowResultSchema = z.object({
103
+ /** Per-block motion vectors over the analysis grid. */
104
+ vectors: z.array(FlowVectorSchema),
105
+ /** Confidence-weighted mean horizontal displacement. */
106
+ meanDx: z.number(),
107
+ /** Confidence-weighted mean vertical displacement. */
108
+ meanDy: z.number(),
109
+ /** Mean confidence across contributing blocks (0..1). */
110
+ meanConfidence: z.number().min(0).max(1),
111
+ /** Analysis-space width. */
112
+ width: z.number().int().positive(),
113
+ /** Analysis-space height. */
114
+ height: z.number().int().positive(),
115
+ /** Block edge length used. */
116
+ blockSize: z.number().int().positive()
117
+ });
118
+ // ── motionEnergy ─────────────────────────────────────────────────────────────
119
+ /** A candidate motion direction (integer per-frame shift, analysis pixels). */
120
+ export const MotionDirectionSchema = z.object({
121
+ dx: z.number().int(),
122
+ dy: z.number().int()
123
+ });
124
+ /** Options for `motionEnergy(frames)` (Reichardt / lag-1 cross-correlation). */
125
+ export const MotionEnergyOptionsSchema = z.object({
126
+ /**
127
+ * Integer downscale factor. Omitted → auto-chosen so the longer edge is
128
+ * ≤ `maxDim`, since motion-energy is O(dirs · pixels · pairs).
129
+ */
130
+ downscale: z.number().int().positive().optional(),
131
+ /** Target longer-edge size (analysis pixels) when `downscale` is auto. Default 96. */
132
+ maxDim: z.number().int().positive().optional(),
133
+ /**
134
+ * Explicit candidate directions. Omitted → every integer shift within
135
+ * `shiftRadius` of the origin (excluding no-motion) is evaluated.
136
+ */
137
+ directions: z.array(MotionDirectionSchema).optional(),
138
+ /** Radius (analysis pixels) for auto-generated candidate directions. Default 4. */
139
+ shiftRadius: z.number().int().positive().optional(),
140
+ /** Include the per-pixel motion-energy map for the dominant direction. */
141
+ includeMap: z.boolean().optional()
142
+ });
143
+ /** Strength of coherent motion in one candidate direction. */
144
+ export const DirectionStrengthSchema = z.object({
145
+ dx: z.number().int(),
146
+ dy: z.number().int(),
147
+ /** Reichardt response for this direction (opponent-subtracted, ~[-1,1]). */
148
+ strength: z.number()
149
+ });
150
+ /**
151
+ * Result of `motionEnergy(frames)`.
152
+ *
153
+ * `coherence` is the discriminator the passage turns on: coherently drifting
154
+ * structure scores high, temporally independent twinkle scores ~0, because
155
+ * the opponent (Reichardt) subtraction cancels non-directional correlation.
156
+ */
157
+ export const MotionEnergyResultSchema = z.object({
158
+ /** Overall coherent-motion strength, 0..1 (max opponent response, clamped). */
159
+ coherence: z.number().min(0).max(1),
160
+ /** Direction with the strongest coherent response. */
161
+ dominant: DirectionStrengthSchema,
162
+ /** Top candidate directions by strength (descending), for inspection. */
163
+ perDirection: z.array(DirectionStrengthSchema),
164
+ /** Analysis-space width. */
165
+ width: z.number().int().positive(),
166
+ /** Analysis-space height. */
167
+ height: z.number().int().positive(),
168
+ /** Per-pixel motion-energy map for the dominant direction. Present iff `includeMap`. */
169
+ map: z.instanceof(Float32Array).optional()
170
+ });
171
+ // ── summarize ────────────────────────────────────────────────────────────────
172
+ /** Coarse classification of what a frame sequence is doing. */
173
+ export const MotionVerdictSchema = z.union([
174
+ z.literal('static'),
175
+ z.literal('coherent-motion'),
176
+ z.literal('incoherent-change')
177
+ ]);
178
+ /** Options for `summarize(frames)`. */
179
+ export const MotionSummaryOptionsSchema = z.object({
180
+ /** Integer downscale factor propagated to the underlying primitives. */
181
+ downscale: z.number().int().positive().optional(),
182
+ /** Coherence at/above which the verdict is `coherent-motion`. Default 0.35. */
183
+ coherenceThreshold: z.number().min(0).max(1).optional(),
184
+ /** Combined diff-magnitude + temporal-std below which the verdict is `static`. Default 0.01. */
185
+ staticThreshold: z.number().min(0).max(1).optional()
186
+ });
187
+ /**
188
+ * Compact, agent-facing summary of a frame sequence — "what happened between
189
+ * these samples" distilled to a payload a vision model or planner can act on.
190
+ */
191
+ export const MotionSummarySchema = z.object({
192
+ /** Number of frames analysed. */
193
+ frameCount: z.number().int().min(2),
194
+ /** First→last change. */
195
+ changed: z.object({
196
+ magnitude: z.number().min(0).max(1),
197
+ changedFraction: z.number().min(0).max(1),
198
+ bbox: RegionSchema.nullable()
199
+ }),
200
+ /** Coherent-motion assessment. */
201
+ motion: z.object({
202
+ coherence: z.number().min(0).max(1),
203
+ dominant: DirectionStrengthSchema
204
+ }),
205
+ /** Temporal-variability assessment. */
206
+ temporal: z.object({
207
+ meanStd: z.number().min(0).max(1),
208
+ peakStd: z.number().min(0).max(1)
209
+ }),
210
+ /** Coarse classification derived from the above. */
211
+ verdict: MotionVerdictSchema
212
+ });
213
+ //# sourceMappingURL=motion-analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion-analysis.js","sourceRoot":"","sources":["../../src/schemas/motion-analysis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Motion Analyzer Descriptor Schema
3
+ *
4
+ * Schema for `media/motion` kind descriptors. A descriptor declares a
5
+ * temporal-perception provider — something that, given a sequence of decoded
6
+ * frames, computes what changed, what moved, and whether motion is coherent.
7
+ *
8
+ * Unlike `media/capture`, motion analysis is pure computation with no hardware
9
+ * dependency, so the reference provider ships inside this package. Descriptors
10
+ * still declare `hardware` so a heavier provider (WASM SIMD, native, GPU) can
11
+ * register for a specific scope and win resolution there.
12
+ */
13
+ import * as z from 'zod/v4';
14
+ /**
15
+ * Named primitives a motion analyzer can expose. Open enum: providers may
16
+ * advertise additional capabilities as string literals.
17
+ */
18
+ export declare const MotionCapabilitySchema: z.ZodUnion<readonly [z.ZodLiteral<"frame-diff">, z.ZodLiteral<"temporal-stats">, z.ZodLiteral<"optical-flow">, z.ZodLiteral<"motion-energy">, z.ZodLiteral<"summarize">, z.ZodString]>;
19
+ export type MotionCapability = z.infer<typeof MotionCapabilitySchema>;
20
+ /**
21
+ * Hardware classes a motion analyzer can run against. The reference provider
22
+ * is pure TS and declares both `consumer` and `cloud`; a native/GPU provider
23
+ * would declare only the scope it accelerates.
24
+ */
25
+ export declare const MotionHardwareSchema: z.ZodUnion<readonly [z.ZodLiteral<"consumer">, z.ZodLiteral<"cloud">, z.ZodString]>;
26
+ export type MotionHardware = z.infer<typeof MotionHardwareSchema>;
27
+ /** `media/motion` descriptor. */
28
+ export declare const MotionAnalyzerDescriptorSchema: z.ZodObject<{
29
+ id: z.ZodString;
30
+ name: z.ZodOptional<z.ZodString>;
31
+ description: z.ZodOptional<z.ZodString>;
32
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
33
+ priority: z.ZodOptional<z.ZodNumber>;
34
+ capabilityId: z.ZodOptional<z.ZodString>;
35
+ requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
36
+ optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
37
+ config: z.ZodOptional<z.ZodUnknown>;
38
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
39
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
40
+ maxEntries: z.ZodOptional<z.ZodNumber>;
41
+ maxBytes: z.ZodOptional<z.ZodNumber>;
42
+ cascadeFrom: z.ZodOptional<z.ZodString>;
43
+ ageField: z.ZodOptional<z.ZodString>;
44
+ reason: z.ZodString;
45
+ enforcedBy: z.ZodOptional<z.ZodString>;
46
+ }, z.core.$strip>]>>;
47
+ kind: z.ZodLiteral<"media/motion">;
48
+ capabilities: z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"frame-diff">, z.ZodLiteral<"temporal-stats">, z.ZodLiteral<"optical-flow">, z.ZodLiteral<"motion-energy">, z.ZodLiteral<"summarize">, z.ZodString]>>;
49
+ hardware: z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"consumer">, z.ZodLiteral<"cloud">, z.ZodString]>>;
50
+ enabled: z.ZodDefault<z.ZodBoolean>;
51
+ }, z.core.$strip>;
52
+ export type MotionAnalyzerDescriptor = z.infer<typeof MotionAnalyzerDescriptorSchema>;
53
+ //# sourceMappingURL=motion-descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion-descriptor.d.ts","sourceRoot":"","sources":["../../src/schemas/motion-descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,wLAOjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,qFAI/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,iCAAiC;AACjC,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;iBAWzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Motion Analyzer Descriptor Schema
3
+ *
4
+ * Schema for `media/motion` kind descriptors. A descriptor declares a
5
+ * temporal-perception provider — something that, given a sequence of decoded
6
+ * frames, computes what changed, what moved, and whether motion is coherent.
7
+ *
8
+ * Unlike `media/capture`, motion analysis is pure computation with no hardware
9
+ * dependency, so the reference provider ships inside this package. Descriptors
10
+ * still declare `hardware` so a heavier provider (WASM SIMD, native, GPU) can
11
+ * register for a specific scope and win resolution there.
12
+ */
13
+ import * as z from 'zod/v4';
14
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
15
+ /**
16
+ * Named primitives a motion analyzer can expose. Open enum: providers may
17
+ * advertise additional capabilities as string literals.
18
+ */
19
+ export const MotionCapabilitySchema = z.union([
20
+ z.literal('frame-diff'),
21
+ z.literal('temporal-stats'),
22
+ z.literal('optical-flow'),
23
+ z.literal('motion-energy'),
24
+ z.literal('summarize'),
25
+ z.string().min(1)
26
+ ]);
27
+ /**
28
+ * Hardware classes a motion analyzer can run against. The reference provider
29
+ * is pure TS and declares both `consumer` and `cloud`; a native/GPU provider
30
+ * would declare only the scope it accelerates.
31
+ */
32
+ export const MotionHardwareSchema = z.union([
33
+ z.literal('consumer'),
34
+ z.literal('cloud'),
35
+ z.string().min(1)
36
+ ]);
37
+ /** `media/motion` descriptor. */
38
+ export const MotionAnalyzerDescriptorSchema = RuntimeDescriptorSchema.extend({
39
+ kind: z.literal('media/motion'),
40
+ /** Primitives this provider implements. */
41
+ capabilities: z.array(MotionCapabilitySchema).min(1),
42
+ /** Hardware classes the provider supports (refines `RuntimeDescriptorSchema.hardware`). */
43
+ hardware: z.array(MotionHardwareSchema).min(1),
44
+ /** Whether the descriptor is currently enabled for resolution. */
45
+ enabled: z.boolean().default(true)
46
+ });
47
+ //# sourceMappingURL=motion-descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion-descriptor.js","sourceRoot":"","sources":["../../src/schemas/motion-descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAEjF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7C,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IACvB,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC3B,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACzB,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IAC1B,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IACtB,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACjB,CAAC,CAAC;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACrB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACjB,CAAC,CAAC;AAIH,iCAAiC;AACjC,MAAM,CAAC,MAAM,8BAA8B,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC5E,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAE/B,2CAA2C;IAC3C,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEpD,2FAA2F;IAC3F,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9C,kEAAkE;IAClE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAClC,CAAC,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Motion Frame Schema
3
+ *
4
+ * A `Frame` is a single **decoded** raster — the unit of input for
5
+ * `media/motion` analysis. Motion analysis operates on a *sequence* of these
6
+ * (e.g. successive screenshots, or frames pulled from a clip by a decoder),
7
+ * not on encoded bytes: decoding/transcoding is `media/capture`'s concern,
8
+ * perception is this kind's.
9
+ *
10
+ * Frames carry raw pixel bytes plus geometry. Single-channel (luma) frames
11
+ * are analysed directly; 3-/4-channel frames are reduced to luminance
12
+ * (0.299R + 0.587G + 0.114B) before analysis, because human motion-energy
13
+ * detectors (V1/MT) are overwhelmingly luminance-driven and that is the
14
+ * signal the passage's coherent-drift carrier lives in.
15
+ */
16
+ import * as z from 'zod/v4';
17
+ export declare const MAX_FRAME_PIXELS = 40000000;
18
+ /**
19
+ * Accepted pixel-buffer types. Canvas `ImageData` yields `Uint8ClampedArray`;
20
+ * native/decoder paths yield `Uint8Array`. Both are byte-addressable rasters.
21
+ */
22
+ export declare const PixelBufferSchema: z.ZodUnion<readonly [z.ZodInstanceOf<Uint8Array<ArrayBuffer>>, z.ZodInstanceOf<Uint8ClampedArray<ArrayBuffer>>]>;
23
+ export type PixelBuffer = z.infer<typeof PixelBufferSchema>;
24
+ /**
25
+ * Channel layout of a frame's pixel buffer.
26
+ *
27
+ * - `1` — luma / grayscale, one byte per pixel.
28
+ * - `3` — packed RGB, three bytes per pixel.
29
+ * - `4` — packed RGBA (alpha ignored for luma), four bytes per pixel.
30
+ */
31
+ export declare const FrameChannelsSchema: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<3>, z.ZodLiteral<4>]>;
32
+ export type FrameChannels = z.infer<typeof FrameChannelsSchema>;
33
+ /**
34
+ * A single decoded frame.
35
+ *
36
+ * `data.length` must be at least `width * height * channels`. Extra trailing
37
+ * bytes (row padding / stride) are tolerated but not interpreted — callers
38
+ * with strided buffers should repack to tight rows first.
39
+ */
40
+ export declare const FrameSchema: z.ZodObject<{
41
+ data: z.ZodUnion<readonly [z.ZodInstanceOf<Uint8Array<ArrayBuffer>>, z.ZodInstanceOf<Uint8ClampedArray<ArrayBuffer>>]>;
42
+ width: z.ZodNumber;
43
+ height: z.ZodNumber;
44
+ channels: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
45
+ timestampMs: z.ZodOptional<z.ZodNumber>;
46
+ }, z.core.$strip>;
47
+ export type Frame = z.infer<typeof FrameSchema>;
48
+ /**
49
+ * An ordered sequence of frames. Temporal analyses (`temporalStats`,
50
+ * `motionEnergy`) require at least two frames; pairwise analyses
51
+ * (`frameDiff`, `opticalFlow`) take exactly two.
52
+ */
53
+ export declare const FrameSequenceSchema: z.ZodArray<z.ZodObject<{
54
+ data: z.ZodUnion<readonly [z.ZodInstanceOf<Uint8Array<ArrayBuffer>>, z.ZodInstanceOf<Uint8ClampedArray<ArrayBuffer>>]>;
55
+ width: z.ZodNumber;
56
+ height: z.ZodNumber;
57
+ channels: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
58
+ timestampMs: z.ZodOptional<z.ZodNumber>;
59
+ }, z.core.$strip>>;
60
+ export type FrameSequence = z.infer<typeof FrameSequenceSchema>;
61
+ /** Discard schema diagnostics and thrown property access: refusals never carry rejected values. */
62
+ export declare function parseMotionInput<const Schema extends z.ZodType>(schema: Schema, value: z.input<Schema>, options?: boolean): z.infer<Schema>;
63
+ //# sourceMappingURL=motion-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion-frame.d.ts","sourceRoot":"","sources":["../../src/schemas/motion-frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAI5B,eAAO,MAAM,gBAAgB,WAAa,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,kHAG5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,0EAAsD,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,WAAW;;;;;;iBAsBtB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;kBAK9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,UAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAKzI"}