@jtdigital/renderbox-sdk 0.2.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 (79) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +82 -0
  3. package/dist/graph.d.ts +194 -0
  4. package/dist/graph.d.ts.map +1 -0
  5. package/dist/graph.js +62 -0
  6. package/dist/graph.js.map +1 -0
  7. package/dist/index.d.ts +13 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +13 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/input.d.ts +30 -0
  12. package/dist/input.d.ts.map +1 -0
  13. package/dist/input.js +167 -0
  14. package/dist/input.js.map +1 -0
  15. package/dist/job.d.ts +18 -0
  16. package/dist/job.d.ts.map +1 -0
  17. package/dist/job.js +15 -0
  18. package/dist/job.js.map +1 -0
  19. package/dist/ops/ai.d.ts +156 -0
  20. package/dist/ops/ai.d.ts.map +1 -0
  21. package/dist/ops/ai.js +134 -0
  22. package/dist/ops/ai.js.map +1 -0
  23. package/dist/ops/audio.d.ts +359 -0
  24. package/dist/ops/audio.d.ts.map +1 -0
  25. package/dist/ops/audio.js +296 -0
  26. package/dist/ops/audio.js.map +1 -0
  27. package/dist/ops/combine.d.ts +246 -0
  28. package/dist/ops/combine.d.ts.map +1 -0
  29. package/dist/ops/combine.js +230 -0
  30. package/dist/ops/combine.js.map +1 -0
  31. package/dist/ops/source.d.ts +41 -0
  32. package/dist/ops/source.d.ts.map +1 -0
  33. package/dist/ops/source.js +34 -0
  34. package/dist/ops/source.js.map +1 -0
  35. package/dist/ops/video.d.ts +695 -0
  36. package/dist/ops/video.d.ts.map +1 -0
  37. package/dist/ops/video.js +620 -0
  38. package/dist/ops/video.js.map +1 -0
  39. package/dist/output.d.ts +26 -0
  40. package/dist/output.d.ts.map +1 -0
  41. package/dist/output.js +144 -0
  42. package/dist/output.js.map +1 -0
  43. package/dist/protocol.d.ts +96 -0
  44. package/dist/protocol.d.ts.map +1 -0
  45. package/dist/protocol.js +2 -0
  46. package/dist/protocol.js.map +1 -0
  47. package/dist/recipes/depthBlurPipeline.d.ts +11 -0
  48. package/dist/recipes/depthBlurPipeline.d.ts.map +1 -0
  49. package/dist/recipes/depthBlurPipeline.js +17 -0
  50. package/dist/recipes/depthBlurPipeline.js.map +1 -0
  51. package/dist/recipes/faceRedact.d.ts +15 -0
  52. package/dist/recipes/faceRedact.d.ts.map +1 -0
  53. package/dist/recipes/faceRedact.js +25 -0
  54. package/dist/recipes/faceRedact.js.map +1 -0
  55. package/dist/recipes/index.d.ts +6 -0
  56. package/dist/recipes/index.d.ts.map +1 -0
  57. package/dist/recipes/index.js +6 -0
  58. package/dist/recipes/index.js.map +1 -0
  59. package/dist/recipes/letterbox.d.ts +6 -0
  60. package/dist/recipes/letterbox.d.ts.map +1 -0
  61. package/dist/recipes/letterbox.js +7 -0
  62. package/dist/recipes/letterbox.js.map +1 -0
  63. package/dist/recipes/makeSlideshow.d.ts +28 -0
  64. package/dist/recipes/makeSlideshow.d.ts.map +1 -0
  65. package/dist/recipes/makeSlideshow.js +127 -0
  66. package/dist/recipes/makeSlideshow.js.map +1 -0
  67. package/dist/recipes/snip.d.ts +3 -0
  68. package/dist/recipes/snip.d.ts.map +1 -0
  69. package/dist/recipes/snip.js +6 -0
  70. package/dist/recipes/snip.js.map +1 -0
  71. package/dist/recipes/subtitleBurn.d.ts +11 -0
  72. package/dist/recipes/subtitleBurn.d.ts.map +1 -0
  73. package/dist/recipes/subtitleBurn.js +16 -0
  74. package/dist/recipes/subtitleBurn.js.map +1 -0
  75. package/dist/types.d.ts +10 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +2 -0
  78. package/dist/types.js.map +1 -0
  79. package/package.json +39 -0
package/dist/input.js ADDED
@@ -0,0 +1,167 @@
1
+ import { GraphBuilder, _mk, _p } from './graph.js';
2
+ const AV = { Product: ['Video', 'Audio'] };
3
+ export function file(path) {
4
+ const g = new GraphBuilder();
5
+ return fileOn(g, path);
6
+ }
7
+ export function fileOn(graph, path) {
8
+ const id = graph._addNode({
9
+ kind: 'Source',
10
+ origin: { File: { path } },
11
+ sort: AV,
12
+ decoding: 'Passthrough',
13
+ opts: {},
14
+ });
15
+ return [_mk('Video', id, graph), _mk('Audio', id, graph)];
16
+ }
17
+ export function fileWithOpts(path, opts) {
18
+ const g = new GraphBuilder();
19
+ return fileWithOptsOn(g, path, opts);
20
+ }
21
+ export function fileWithOptsOn(graph, path, opts) {
22
+ const id = graph._addNode({
23
+ kind: 'Source',
24
+ origin: { File: { path } },
25
+ sort: AV,
26
+ decoding: 'Passthrough',
27
+ opts: _p(opts),
28
+ });
29
+ return [_mk('Video', id, graph), _mk('Audio', id, graph)];
30
+ }
31
+ export function fileLooped(path, duration) {
32
+ return fileWithOpts(path, { loop: 1, t: duration });
33
+ }
34
+ export function fileVideo(path) {
35
+ return file(path)[0];
36
+ }
37
+ export function fileAudio(path) {
38
+ return file(path)[1];
39
+ }
40
+ export function rtsp(url) {
41
+ const g = new GraphBuilder();
42
+ return rtspOn(g, url);
43
+ }
44
+ export function rtspOn(graph, url) {
45
+ const id = graph._addNode({
46
+ kind: 'Source',
47
+ origin: { Rtsp: { url, transport: null } },
48
+ sort: AV,
49
+ decoding: 'Passthrough',
50
+ opts: {},
51
+ });
52
+ return [_mk('Video', id, graph), _mk('Audio', id, graph)];
53
+ }
54
+ export function mqtt(broker, topic) {
55
+ const g = new GraphBuilder();
56
+ return mqttOn(g, broker, topic);
57
+ }
58
+ export function mqttOn(graph, broker, topic) {
59
+ const id = graph._addNode({
60
+ kind: 'Source',
61
+ origin: { Mqtt: { broker, topic, qos: null } },
62
+ sort: 'Detection',
63
+ decoding: 'JsonlDetection',
64
+ opts: {},
65
+ });
66
+ return _mk('Detection', id, graph);
67
+ }
68
+ export function hls(url) {
69
+ const g = new GraphBuilder();
70
+ return hlsOn(g, url);
71
+ }
72
+ export function hlsOn(graph, url) {
73
+ const id = graph._addNode({
74
+ kind: 'Source',
75
+ origin: { Hls: { url } },
76
+ sort: AV,
77
+ decoding: 'Passthrough',
78
+ opts: {},
79
+ });
80
+ return [_mk('Video', id, graph), _mk('Audio', id, graph)];
81
+ }
82
+ export function camera(device) {
83
+ const g = new GraphBuilder();
84
+ return cameraOn(g, device);
85
+ }
86
+ export function cameraOn(graph, device) {
87
+ const id = graph._addNode({
88
+ kind: 'Source',
89
+ origin: { Camera: { device: String(device) } },
90
+ sort: AV,
91
+ decoding: 'Passthrough',
92
+ opts: {},
93
+ });
94
+ return [_mk('Video', id, graph), _mk('Audio', id, graph)];
95
+ }
96
+ export function screenCapture() {
97
+ const g = new GraphBuilder();
98
+ const id = g._addNode({
99
+ kind: 'Source',
100
+ origin: { ScreenCapture: { display: null } },
101
+ sort: AV,
102
+ decoding: 'Passthrough',
103
+ opts: {},
104
+ });
105
+ return [_mk('Video', id, g), _mk('Audio', id, g)];
106
+ }
107
+ export function slot(label) {
108
+ const g = new GraphBuilder();
109
+ return slotOn(g, label);
110
+ }
111
+ export function slotOn(graph, label) {
112
+ const id = graph._addNode({
113
+ kind: 'Source',
114
+ origin: { Slot: { label } },
115
+ sort: AV,
116
+ decoding: 'Passthrough',
117
+ opts: {},
118
+ });
119
+ graph._addSlot({
120
+ label,
121
+ node_ids: [[id, 'Video'], [id, 'Audio']],
122
+ direction: 'Input',
123
+ optional: false,
124
+ });
125
+ return [_mk('Video', id, graph), _mk('Audio', id, graph)];
126
+ }
127
+ export function slotVideo(label) {
128
+ const g = new GraphBuilder();
129
+ return slotVideoOn(g, label);
130
+ }
131
+ export function slotVideoOn(graph, label) {
132
+ const id = graph._addNode({
133
+ kind: 'Source',
134
+ origin: { Slot: { label } },
135
+ sort: 'Video',
136
+ decoding: 'Passthrough',
137
+ opts: {},
138
+ });
139
+ graph._addSlot({
140
+ label,
141
+ node_ids: [[id, 'Video']],
142
+ direction: 'Input',
143
+ optional: false,
144
+ });
145
+ return _mk('Video', id, graph);
146
+ }
147
+ export function slotAudio(label) {
148
+ const g = new GraphBuilder();
149
+ return slotAudioOn(g, label);
150
+ }
151
+ export function slotAudioOn(graph, label) {
152
+ const id = graph._addNode({
153
+ kind: 'Source',
154
+ origin: { Slot: { label } },
155
+ sort: 'Audio',
156
+ decoding: 'Passthrough',
157
+ opts: {},
158
+ });
159
+ graph._addSlot({
160
+ label,
161
+ node_ids: [[id, 'Audio']],
162
+ direction: 'Input',
163
+ optional: false,
164
+ });
165
+ return _mk('Audio', id, graph);
166
+ }
167
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
package/dist/job.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ import type { GraphBuilder, Bindings } from './graph.js';
2
+ import type { InputFile, OutputSpec, JobMessage } from './protocol.js';
3
+ export interface JobOpts {
4
+ jobId: string;
5
+ userId: string;
6
+ tenantId: string;
7
+ graph: GraphBuilder;
8
+ inputFiles: InputFile[];
9
+ output?: OutputSpec;
10
+ /** Only pass for slotted graphs (built with slot()/outputSlot()). Presence
11
+ * of the key — even {} — routes the job down the slotted-graph path, which
12
+ * requires an io_manifest and valid bindings. */
13
+ bindings?: Bindings;
14
+ /** 'sequential' requests multi-pass execution (for jobs that need it). */
15
+ executionStrategy?: string;
16
+ }
17
+ export declare function buildJob(opts: JobOpts): JobMessage;
18
+ //# sourceMappingURL=job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;qDAEiD;IACjD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAalD"}
package/dist/job.js ADDED
@@ -0,0 +1,15 @@
1
+ export function buildJob(opts) {
2
+ // Omit pipeline_id: the engine classifies on pipeline_id first, so including
3
+ // one routes the job to a named pipeline instead of the graph_ir path.
4
+ return {
5
+ job_id: opts.jobId,
6
+ user_id: opts.userId,
7
+ tenant_id: opts.tenantId,
8
+ graph_ir: opts.graph.toJSON(),
9
+ input_files: opts.inputFiles,
10
+ output: opts.output,
11
+ bindings: opts.bindings,
12
+ execution_strategy: opts.executionStrategy,
13
+ };
14
+ }
15
+ //# sourceMappingURL=job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,6EAA6E;IAC7E,uEAAuE;IACvE,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,KAAK;QAClB,OAAO,EAAE,IAAI,CAAC,MAAM;QACpB,SAAS,EAAE,IAAI,CAAC,QAAQ;QACxB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QAC7B,WAAW,EAAE,IAAI,CAAC,UAAU;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;KAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,156 @@
1
+ import type { Stream } from '../types.js';
2
+ export interface AggregateTracksOpts {
3
+ attribute?: string;
4
+ method?: 'majority_vote' | 'weighted_avg' | 'last_n';
5
+ /** @range greater than 0 */
6
+ window?: number;
7
+ }
8
+ export declare function aggregateTracks(opts?: AggregateTracksOpts): (input: Stream<'Detection'>) => Stream<'Detection'>;
9
+ export interface ClassifyAudioEventOpts {
10
+ model?: string;
11
+ /** @range [0, 1] */
12
+ threshold?: number;
13
+ /** @range greater than 0 */
14
+ window_seconds?: number;
15
+ /** @range greater than 0 */
16
+ hop_seconds?: number;
17
+ }
18
+ export declare function classifyAudioEvent(opts?: ClassifyAudioEventOpts): (input: Stream<'Audio'>) => Stream<'AudioEvent'>;
19
+ export interface ClassifySceneOpts {
20
+ model?: string;
21
+ /** @range [0, 1] */
22
+ threshold?: number;
23
+ /** @range greater than 0 */
24
+ top_k?: number;
25
+ batchSize?: number;
26
+ }
27
+ export declare function classifyScene(opts?: ClassifySceneOpts): (input: Stream<'Video'>) => Stream<'Scene'>;
28
+ export interface ComputeAnglesOpts {
29
+ angles?: string;
30
+ }
31
+ export declare function computeAngles(opts?: ComputeAnglesOpts): (input: Stream<'Pose'>) => Stream<'Pose'>;
32
+ export interface CountOpts {
33
+ aggregate?: 'sum' | 'avg' | 'max' | 'min';
34
+ }
35
+ export declare function count(opts?: CountOpts): (input: Stream<'Detection'>) => Stream<'Detection'>;
36
+ export interface DetectOpts {
37
+ model: string;
38
+ /** @range [0, 1] */
39
+ threshold?: number;
40
+ classes?: string;
41
+ filter_classes?: string;
42
+ inputSize?: string;
43
+ stride?: number;
44
+ batchSize?: number;
45
+ }
46
+ export declare function detect(opts: DetectOpts): (input: Stream<'Video'>) => Stream<'Detection'>;
47
+ export interface DiarizeOpts {
48
+ /** @range greater than 0 */
49
+ max_speakers?: number;
50
+ /** @range at least 0 */
51
+ min_duration?: number;
52
+ }
53
+ export declare function diarize(opts?: DiarizeOpts): (input: Stream<'Transcript'>) => Stream<'Transcript'>;
54
+ export interface EstimateDensityOpts {
55
+ model?: string;
56
+ }
57
+ export declare function estimateDensity(opts?: EstimateDensityOpts): (input: Stream<'Video'>) => Stream<'Density'>;
58
+ export interface EstimateDepthOpts {
59
+ model?: string;
60
+ }
61
+ export declare function estimateDepth(opts?: EstimateDepthOpts): (input: Stream<'Video'>) => Stream<'Depth'>;
62
+ export interface EstimatePoseOpts {
63
+ model?: string;
64
+ /** @range [0, 1] */
65
+ threshold?: number;
66
+ /** @range greater than 0 */
67
+ max_persons?: number;
68
+ }
69
+ export declare function estimatePose(opts?: EstimatePoseOpts): (input: Stream<'Video'>) => Stream<'Pose'>;
70
+ export interface FilterAudioEventsOpts {
71
+ include?: string;
72
+ exclude?: string;
73
+ /** @range [0, 1] */
74
+ min_confidence?: number;
75
+ /** @range at least 0 */
76
+ min_duration?: number;
77
+ }
78
+ export declare function filterAudioEvents(opts?: FilterAudioEventsOpts): (input: Stream<'AudioEvent'>) => Stream<'AudioEvent'>;
79
+ export interface FilterDetectionsOpts {
80
+ include?: string;
81
+ exclude?: string;
82
+ /** @range [0, 1] */
83
+ min_confidence?: number;
84
+ /** @range [0, 1] */
85
+ min_area?: number;
86
+ /** @range at least 0 */
87
+ min_track_frames?: number;
88
+ attribute?: string;
89
+ attribute_value?: string;
90
+ attribute_absent?: string;
91
+ /** @range at least 0 */
92
+ track_id?: number;
93
+ /** @range at least 0 */
94
+ exclude_track_id?: number;
95
+ }
96
+ export declare function filterDetections(opts?: FilterDetectionsOpts): (input: Stream<'Detection'>) => Stream<'Detection'>;
97
+ export interface FilterPosesOpts {
98
+ /** @range [0, 1] */
99
+ min_score?: number;
100
+ /** @range greater than 0 */
101
+ max_persons?: number;
102
+ }
103
+ export declare function filterPoses(opts?: FilterPosesOpts): (input: Stream<'Pose'>) => Stream<'Pose'>;
104
+ export interface FilterScenesOpts {
105
+ /** @range [0, 1] */
106
+ min_confidence?: number;
107
+ }
108
+ export declare function filterScenes(opts?: FilterScenesOpts): (input: Stream<'Scene'>) => Stream<'Scene'>;
109
+ export interface FilterSegmentationOpts {
110
+ classes?: string;
111
+ /** @range at least 0 */
112
+ min_area?: number;
113
+ }
114
+ export declare function filterSegmentation(opts?: FilterSegmentationOpts): (input: Stream<'Segmentation'>) => Stream<'Segmentation'>;
115
+ export interface FilterTextOpts {
116
+ /** @range [0, 1] */
117
+ min_confidence?: number;
118
+ pattern?: string;
119
+ }
120
+ export declare function filterText(opts?: FilterTextOpts): (input: Stream<'Text'>) => Stream<'Text'>;
121
+ export interface InsertChaptersOpts {
122
+ /** @range at least 0 */
123
+ min_duration?: number;
124
+ format?: string;
125
+ }
126
+ export declare function insertChapters(opts?: InsertChaptersOpts): (input: Stream<'Scene'>) => Stream<'Scene'>;
127
+ export interface RecognizeTextOpts {
128
+ model?: string;
129
+ /** @range [0, 1] */
130
+ threshold?: number;
131
+ }
132
+ export declare function recognizeText(opts?: RecognizeTextOpts): (input: Stream<'Video'>) => Stream<'Text'>;
133
+ export interface SegmentOpts {
134
+ model?: string;
135
+ /** @range [0, 1] */
136
+ threshold?: number;
137
+ pointsPerSide?: number;
138
+ }
139
+ export declare function segment(opts?: SegmentOpts): (input: Stream<'Video'>) => Stream<'Segmentation'>;
140
+ export interface TrackOpts {
141
+ algorithm: 'bytetrack' | 'sort' | 'deepsort';
142
+ }
143
+ export declare function track(opts: TrackOpts): (input: Stream<'Detection'>) => Stream<'Detection'>;
144
+ export interface TranscribeOpts {
145
+ model?: string;
146
+ language?: string;
147
+ }
148
+ export declare function transcribe(opts?: TranscribeOpts): (input: Stream<'Audio'>) => Stream<'Transcript'>;
149
+ export interface ZoneOpts {
150
+ polygon?: string;
151
+ anchor?: 'centroid' | 'bottom_center' | 'bbox';
152
+ invert?: boolean;
153
+ attribute?: string;
154
+ }
155
+ export declare function zone(opts?: ZoneOpts): (input: Stream<'Detection'>) => Stream<'Detection'>;
156
+ //# sourceMappingURL=ai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/ops/ai.ts"],"names":[],"mappings":"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"}
package/dist/ops/ai.js ADDED
@@ -0,0 +1,134 @@
1
+ import { _mk, _id, _g, _p } from '../graph.js';
2
+ export function aggregateTracks(opts) {
3
+ return (input) => {
4
+ const g = _g(input);
5
+ return _mk('Detection', g._addNode({ kind: 'Transform', op: 'aggregate_tracks', params: opts ? _p(opts) : {}, input: _id(input) }), g);
6
+ };
7
+ }
8
+ export function classifyAudioEvent(opts) {
9
+ return (input) => {
10
+ const g = _g(input);
11
+ return _mk('AudioEvent', g._addNode({ kind: 'Fanout', op: 'classify_audio_event', params: opts ? _p(opts) : {}, input: _id(input) }), g);
12
+ };
13
+ }
14
+ export function classifyScene(opts) {
15
+ return (input) => {
16
+ const g = _g(input);
17
+ return _mk('Scene', g._addNode({ kind: 'Fanout', op: 'classify_scene', params: opts ? _p(opts) : {}, input: _id(input) }), g);
18
+ };
19
+ }
20
+ export function computeAngles(opts) {
21
+ return (input) => {
22
+ const g = _g(input);
23
+ return _mk('Pose', g._addNode({ kind: 'Transform', op: 'compute_angles', params: opts ? _p(opts) : {}, input: _id(input) }), g);
24
+ };
25
+ }
26
+ export function count(opts) {
27
+ return (input) => {
28
+ const g = _g(input);
29
+ return _mk('Detection', g._addNode({ kind: 'Transform', op: 'count', params: opts ? _p(opts) : {}, input: _id(input) }), g);
30
+ };
31
+ }
32
+ export function detect(opts) {
33
+ return (input) => {
34
+ const g = _g(input);
35
+ return _mk('Detection', g._addNode({ kind: 'Fanout', op: 'detect', params: _p(opts), input: _id(input) }), g);
36
+ };
37
+ }
38
+ export function diarize(opts) {
39
+ return (input) => {
40
+ const g = _g(input);
41
+ return _mk('Transcript', g._addNode({ kind: 'Transform', op: 'diarize', params: opts ? _p(opts) : {}, input: _id(input) }), g);
42
+ };
43
+ }
44
+ export function estimateDensity(opts) {
45
+ return (input) => {
46
+ const g = _g(input);
47
+ return _mk('Density', g._addNode({ kind: 'Fanout', op: 'estimate_density', params: opts ? _p(opts) : {}, input: _id(input) }), g);
48
+ };
49
+ }
50
+ export function estimateDepth(opts) {
51
+ return (input) => {
52
+ const g = _g(input);
53
+ return _mk('Depth', g._addNode({ kind: 'Fanout', op: 'estimate_depth', params: opts ? _p(opts) : {}, input: _id(input) }), g);
54
+ };
55
+ }
56
+ export function estimatePose(opts) {
57
+ return (input) => {
58
+ const g = _g(input);
59
+ return _mk('Pose', g._addNode({ kind: 'Fanout', op: 'estimate_pose', params: opts ? _p(opts) : {}, input: _id(input) }), g);
60
+ };
61
+ }
62
+ export function filterAudioEvents(opts) {
63
+ return (input) => {
64
+ const g = _g(input);
65
+ return _mk('AudioEvent', g._addNode({ kind: 'Transform', op: 'filter_audio_events', params: opts ? _p(opts) : {}, input: _id(input) }), g);
66
+ };
67
+ }
68
+ export function filterDetections(opts) {
69
+ return (input) => {
70
+ const g = _g(input);
71
+ return _mk('Detection', g._addNode({ kind: 'Transform', op: 'filter_detections', params: opts ? _p(opts) : {}, input: _id(input) }), g);
72
+ };
73
+ }
74
+ export function filterPoses(opts) {
75
+ return (input) => {
76
+ const g = _g(input);
77
+ return _mk('Pose', g._addNode({ kind: 'Transform', op: 'filter_poses', params: opts ? _p(opts) : {}, input: _id(input) }), g);
78
+ };
79
+ }
80
+ export function filterScenes(opts) {
81
+ return (input) => {
82
+ const g = _g(input);
83
+ return _mk('Scene', g._addNode({ kind: 'Transform', op: 'filter_scenes', params: opts ? _p(opts) : {}, input: _id(input) }), g);
84
+ };
85
+ }
86
+ export function filterSegmentation(opts) {
87
+ return (input) => {
88
+ const g = _g(input);
89
+ return _mk('Segmentation', g._addNode({ kind: 'Transform', op: 'filter_segmentation', params: opts ? _p(opts) : {}, input: _id(input) }), g);
90
+ };
91
+ }
92
+ export function filterText(opts) {
93
+ return (input) => {
94
+ const g = _g(input);
95
+ return _mk('Text', g._addNode({ kind: 'Transform', op: 'filter_text', params: opts ? _p(opts) : {}, input: _id(input) }), g);
96
+ };
97
+ }
98
+ export function insertChapters(opts) {
99
+ return (input) => {
100
+ const g = _g(input);
101
+ return _mk('Scene', g._addNode({ kind: 'Transform', op: 'insert_chapters', params: opts ? _p(opts) : {}, input: _id(input) }), g);
102
+ };
103
+ }
104
+ export function recognizeText(opts) {
105
+ return (input) => {
106
+ const g = _g(input);
107
+ return _mk('Text', g._addNode({ kind: 'Fanout', op: 'recognize_text', params: opts ? _p(opts) : {}, input: _id(input) }), g);
108
+ };
109
+ }
110
+ export function segment(opts) {
111
+ return (input) => {
112
+ const g = _g(input);
113
+ return _mk('Segmentation', g._addNode({ kind: 'Fanout', op: 'segment', params: opts ? _p(opts) : {}, input: _id(input) }), g);
114
+ };
115
+ }
116
+ export function track(opts) {
117
+ return (input) => {
118
+ const g = _g(input);
119
+ return _mk('Detection', g._addNode({ kind: 'Transform', op: 'track', params: _p(opts), input: _id(input) }), g);
120
+ };
121
+ }
122
+ export function transcribe(opts) {
123
+ return (input) => {
124
+ const g = _g(input);
125
+ return _mk('Transcript', g._addNode({ kind: 'Fanout', op: 'transcribe', params: opts ? _p(opts) : {}, input: _id(input) }), g);
126
+ };
127
+ }
128
+ export function zone(opts) {
129
+ return (input) => {
130
+ const g = _g(input);
131
+ return _mk('Detection', g._addNode({ kind: 'Transform', op: 'zone', params: opts ? _p(opts) : {}, input: _id(input) }), g);
132
+ };
133
+ }
134
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/ops/ai.ts"],"names":[],"mappings":"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"}