@norskvideo/ctl-product-template-schema 0.1.8 → 0.1.10
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.
- package/index.d.ts +15 -6
- package/index.js +24 -15
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -23,8 +23,8 @@ export declare const ProductTemplateAdvancedSchema: z.ZodObject<{
|
|
|
23
23
|
shmSize: z.ZodOptional<z.ZodObject<{
|
|
24
24
|
default: z.ZodOptional<z.ZodString>;
|
|
25
25
|
}, z.core.$strip>>;
|
|
26
|
-
|
|
27
|
-
default: z.ZodOptional<z.ZodString
|
|
26
|
+
sharedMemory: z.ZodOptional<z.ZodObject<{
|
|
27
|
+
default: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
28
28
|
}, z.core.$strip>>;
|
|
29
29
|
openFileLimit: z.ZodOptional<z.ZodObject<{
|
|
30
30
|
default: z.ZodOptional<z.ZodNumber>;
|
|
@@ -43,6 +43,9 @@ export declare const ProductTemplateAllocatedPortSchema: z.ZodObject<{
|
|
|
43
43
|
export type ProductTemplateAllocatedPort = z.infer<typeof ProductTemplateAllocatedPortSchema>;
|
|
44
44
|
export declare const ProductTemplateSideloadSchema: z.ZodObject<{
|
|
45
45
|
gpuInference: z.ZodOptional<z.ZodBoolean>;
|
|
46
|
+
models: z.ZodOptional<z.ZodBoolean>;
|
|
47
|
+
modelsReasoning: z.ZodOptional<z.ZodBoolean>;
|
|
48
|
+
llmVenv: z.ZodOptional<z.ZodBoolean>;
|
|
46
49
|
}, z.core.$strip>;
|
|
47
50
|
export type ProductTemplateSideload = z.infer<typeof ProductTemplateSideloadSchema>;
|
|
48
51
|
export declare const ProductTemplateManifestSchema: z.ZodObject<{
|
|
@@ -73,6 +76,9 @@ export declare const ProductTemplateManifestSchema: z.ZodObject<{
|
|
|
73
76
|
requiresWorkingDirectory: z.ZodOptional<z.ZodBoolean>;
|
|
74
77
|
sideload: z.ZodOptional<z.ZodObject<{
|
|
75
78
|
gpuInference: z.ZodOptional<z.ZodBoolean>;
|
|
79
|
+
models: z.ZodOptional<z.ZodBoolean>;
|
|
80
|
+
modelsReasoning: z.ZodOptional<z.ZodBoolean>;
|
|
81
|
+
llmVenv: z.ZodOptional<z.ZodBoolean>;
|
|
76
82
|
}, z.core.$strip>>;
|
|
77
83
|
advanced: z.ZodOptional<z.ZodObject<{
|
|
78
84
|
networkMode: z.ZodOptional<z.ZodObject<{
|
|
@@ -93,8 +99,8 @@ export declare const ProductTemplateManifestSchema: z.ZodObject<{
|
|
|
93
99
|
shmSize: z.ZodOptional<z.ZodObject<{
|
|
94
100
|
default: z.ZodOptional<z.ZodString>;
|
|
95
101
|
}, z.core.$strip>>;
|
|
96
|
-
|
|
97
|
-
default: z.ZodOptional<z.ZodString
|
|
102
|
+
sharedMemory: z.ZodOptional<z.ZodObject<{
|
|
103
|
+
default: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
98
104
|
}, z.core.$strip>>;
|
|
99
105
|
openFileLimit: z.ZodOptional<z.ZodObject<{
|
|
100
106
|
default: z.ZodOptional<z.ZodNumber>;
|
|
@@ -188,6 +194,9 @@ export declare const ProductTemplateMaterialsSchema: z.ZodObject<{
|
|
|
188
194
|
requiresWorkingDirectory: z.ZodOptional<z.ZodBoolean>;
|
|
189
195
|
sideload: z.ZodOptional<z.ZodObject<{
|
|
190
196
|
gpuInference: z.ZodOptional<z.ZodBoolean>;
|
|
197
|
+
models: z.ZodOptional<z.ZodBoolean>;
|
|
198
|
+
modelsReasoning: z.ZodOptional<z.ZodBoolean>;
|
|
199
|
+
llmVenv: z.ZodOptional<z.ZodBoolean>;
|
|
191
200
|
}, z.core.$strip>>;
|
|
192
201
|
advanced: z.ZodOptional<z.ZodObject<{
|
|
193
202
|
networkMode: z.ZodOptional<z.ZodObject<{
|
|
@@ -208,8 +217,8 @@ export declare const ProductTemplateMaterialsSchema: z.ZodObject<{
|
|
|
208
217
|
shmSize: z.ZodOptional<z.ZodObject<{
|
|
209
218
|
default: z.ZodOptional<z.ZodString>;
|
|
210
219
|
}, z.core.$strip>>;
|
|
211
|
-
|
|
212
|
-
default: z.ZodOptional<z.ZodString
|
|
220
|
+
sharedMemory: z.ZodOptional<z.ZodObject<{
|
|
221
|
+
default: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
213
222
|
}, z.core.$strip>>;
|
|
214
223
|
openFileLimit: z.ZodOptional<z.ZodObject<{
|
|
215
224
|
default: z.ZodOptional<z.ZodNumber>;
|
package/index.js
CHANGED
|
@@ -78,16 +78,14 @@ export const ProductTemplateAdvancedSchema = z
|
|
|
78
78
|
// exclusive and a second instance needs a different one. Hard pinning is
|
|
79
79
|
// a future product-template-pins concern, not this knob.
|
|
80
80
|
hostPorts: z.object({ default: z.array(z.string()).optional() }).optional(),
|
|
81
|
-
// Shared memory
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
// `default`, so an operator gets it without knowing the transport's
|
|
88
|
-
// mechanics.
|
|
81
|
+
// Shared memory: `shmSize` sizes media's private /dev/shm — always private
|
|
82
|
+
// to the instance (ADR-0011). Cross-instance sharing is `sharedMemory`:
|
|
83
|
+
// operator-created host tmpfs paths bind-mounted into media (e.g. an MXL
|
|
84
|
+
// domain). A product built around a domain suggests the conventional path
|
|
85
|
+
// as its `default`; the operator still owns creating the mount, and can
|
|
86
|
+
// override or decline at launch.
|
|
89
87
|
shmSize: z.object({ default: z.string().optional() }).optional(),
|
|
90
|
-
|
|
88
|
+
sharedMemory: z.object({ default: z.array(z.string()).optional() }).optional(),
|
|
91
89
|
// Open file descriptors per container. The runner already states a ceiling
|
|
92
90
|
// for every instance (unset, containers inherit the host daemon's limit,
|
|
93
91
|
// which is how a media graph at ~1000 handles dies of EMFILE on some hosts
|
|
@@ -117,15 +115,26 @@ export const ProductTemplateAllocatedPortSchema = z
|
|
|
117
115
|
label: z.string().optional().meta({ description: "Human label, e.g. 'MoQ preview (WebTransport)'" }),
|
|
118
116
|
})
|
|
119
117
|
.meta({ id: "ProductTemplateAllocatedPort", outputId: "ProductTemplateAllocatedPort" });
|
|
120
|
-
//
|
|
121
|
-
//
|
|
122
|
-
//
|
|
123
|
-
//
|
|
124
|
-
//
|
|
118
|
+
// Sideload bundle needs (docker/SIDELOAD.md). `gpu-video` (NVENC/NVDEC) follows
|
|
119
|
+
// the GPU reservation automatically, so it needs no declaration. `gpuInference`
|
|
120
|
+
// gates the 1.58 GB CUDA bundle and is inert without a GPU reservation
|
|
121
|
+
// (inference falls back to CPU). The two model-weight declarations are
|
|
122
|
+
// GPU-independent: the weights ARE the feature, so a declaration is honoured on
|
|
123
|
+
// CPU-only hosts too. All of it is inert on a fat image (no `.refs`, nothing to
|
|
124
|
+
// mount).
|
|
125
125
|
export const ProductTemplateSideloadSchema = z
|
|
126
126
|
.object({
|
|
127
127
|
gpuInference: z.boolean().optional().meta({
|
|
128
|
-
description: "Deployment uses GPU-accelerated inference (ONNX NR-IQA/
|
|
128
|
+
description: "Deployment uses GPU-accelerated inference (ONNX NR-IQA/reasoning local analysis/VAD, GPU whisper). When the GPU is reserved on the host the runner mounts the gpu-inference CUDA bundle; otherwise inference falls back to CPU. gpu-video (NVENC/NVDEC) follows the GPU reservation automatically and needs no declaration.",
|
|
129
|
+
}),
|
|
130
|
+
models: z.boolean().optional().meta({
|
|
131
|
+
description: "Deployment uses quality monitoring (NR-IQA). The runner mounts the arch-independent models bundle (the NR-IQA ONNX weights) — needed with or without a GPU; on a slimmed image the feature is unavailable without it.",
|
|
132
|
+
}),
|
|
133
|
+
modelsReasoning: z.boolean().optional().meta({
|
|
134
|
+
description: "Deployment uses AI reasoning local analysis (object detection, scene semantics, face identity, speaker identity, OCR). The runner mounts the arch-independent models-reasoning bundle (those ONNX weights) — needed with or without a GPU; on a slimmed image those tools are unavailable without it.",
|
|
135
|
+
}),
|
|
136
|
+
llmVenv: z.boolean().optional().meta({
|
|
137
|
+
description: "Deployment uses the remote LLM providers (OpenAI/Gemini/Claude — AI reasoning plan/evaluate, live evaluate). The runner mounts the per-arch llm-venv bundle (the provider Python SDKs) — needed with or without a GPU; on a slimmed image LLM provider nodes are unavailable without it.",
|
|
129
138
|
}),
|
|
130
139
|
})
|
|
131
140
|
.meta({ id: "ProductTemplateSideload", outputId: "ProductTemplateSideload" });
|