omnius 1.0.627 → 1.0.629
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/README.md +3 -0
- package/dist/index.js +10160 -9484
- package/dist/scripts/audio-yamnet-tensorrt-worker.py +335 -0
- package/dist/update-worker.js +224 -182
- package/docs/DISCOVERY.json +311 -9
- package/docs/DISCOVERY.md +5 -2
- package/docs/reference/rest-api.md +4 -1
- package/docs/rest/INDEX.md +1 -1
- package/docs/rest/endpoints/voice-vision.md +61 -1
- package/npm-shrinkwrap.json +17 -17
- package/package.json +2 -2
package/docs/DISCOVERY.json
CHANGED
|
@@ -3832,7 +3832,7 @@
|
|
|
3832
3832
|
"tags": [
|
|
3833
3833
|
"ASR"
|
|
3834
3834
|
],
|
|
3835
|
-
"description": "Body: {modelId?, device?}. Installs the managed runtime and pulls the requested model. Whisper, Nemotron, and Voxtral load the requested weights to validate exact CUDA placement; VibeVoice stores its pinned model and tokenizer snapshot under Omnius' ASR runtime directories.",
|
|
3835
|
+
"description": "Body: {modelId?, device?}. Installs the managed runtime and pulls the requested model. Whisper, Nemotron, and Voxtral load the requested weights to validate exact CUDA placement; VibeVoice stores its pinned microsoft/VibeVoice-ASR model and tokenizer snapshot under Omnius' ASR runtime directories.",
|
|
3836
3836
|
"parameters": [
|
|
3837
3837
|
{
|
|
3838
3838
|
"name": "engineId",
|
|
@@ -3936,7 +3936,7 @@
|
|
|
3936
3936
|
"tags": [
|
|
3937
3937
|
"ASR"
|
|
3938
3938
|
],
|
|
3939
|
-
"description": "Body: {engineId, modelId?, setup?, device?}. Selection is validated against the registry. setup=true pulls the exact managed model and verifies CUDA placement before activation. Hardware evidence uses nvidia-smi on discrete Linux and NVIDIA's documented tegrastats plus a CUDA Torch property probe on Jetson/L4T.",
|
|
3939
|
+
"description": "Body: {engineId, modelId?, setup?, device?}. Selection is validated against the registry and fails fail-closed: no unavailable engine, missing weights, or unverified CUDA placement can silently replace the active selection. setup=true pulls the exact managed model and verifies CUDA placement before activation. Hardware evidence uses nvidia-smi on discrete Linux and NVIDIA's documented tegrastats plus a CUDA Torch property probe on Jetson/L4T.",
|
|
3940
3940
|
"responses": {
|
|
3941
3941
|
"200": {
|
|
3942
3942
|
"description": "Exact selection activated"
|
|
@@ -4184,6 +4184,236 @@
|
|
|
4184
4184
|
"packages/cli/src/api/openapi.ts"
|
|
4185
4185
|
]
|
|
4186
4186
|
},
|
|
4187
|
+
{
|
|
4188
|
+
"id": "api.v1-audio-classify",
|
|
4189
|
+
"kind": "api",
|
|
4190
|
+
"title": "/v1/audio/classify",
|
|
4191
|
+
"summary": "Classify a supplied WAV with persistent CUDA/TensorRT YAMNet",
|
|
4192
|
+
"aliases": [
|
|
4193
|
+
"/v1/audio/classify"
|
|
4194
|
+
],
|
|
4195
|
+
"keywords": [
|
|
4196
|
+
"rest",
|
|
4197
|
+
"openapi",
|
|
4198
|
+
"POST",
|
|
4199
|
+
"Audio",
|
|
4200
|
+
"v1",
|
|
4201
|
+
"audio",
|
|
4202
|
+
"classify"
|
|
4203
|
+
],
|
|
4204
|
+
"maturity": "stable",
|
|
4205
|
+
"layer": "interface",
|
|
4206
|
+
"audiences": [
|
|
4207
|
+
"integrator",
|
|
4208
|
+
"service-agent",
|
|
4209
|
+
"coding-agent"
|
|
4210
|
+
],
|
|
4211
|
+
"interfaces": [
|
|
4212
|
+
{
|
|
4213
|
+
"type": "rest",
|
|
4214
|
+
"target": "POST /v1/audio/classify"
|
|
4215
|
+
},
|
|
4216
|
+
{
|
|
4217
|
+
"type": "openapi",
|
|
4218
|
+
"target": "/openapi.json"
|
|
4219
|
+
}
|
|
4220
|
+
],
|
|
4221
|
+
"references": [
|
|
4222
|
+
{
|
|
4223
|
+
"type": "source",
|
|
4224
|
+
"target": "packages/cli/src/api/openapi.ts",
|
|
4225
|
+
"relation": "openapi-source"
|
|
4226
|
+
},
|
|
4227
|
+
{
|
|
4228
|
+
"type": "documentation",
|
|
4229
|
+
"target": "docs/reference/rest-api.md",
|
|
4230
|
+
"relation": "endpoint-inventory"
|
|
4231
|
+
}
|
|
4232
|
+
],
|
|
4233
|
+
"methods": [
|
|
4234
|
+
"POST"
|
|
4235
|
+
],
|
|
4236
|
+
"tags": [
|
|
4237
|
+
"Audio"
|
|
4238
|
+
],
|
|
4239
|
+
"operations": {
|
|
4240
|
+
"post": {
|
|
4241
|
+
"summary": "Classify a supplied WAV with persistent CUDA/TensorRT YAMNet",
|
|
4242
|
+
"tags": [
|
|
4243
|
+
"Audio"
|
|
4244
|
+
],
|
|
4245
|
+
"description": "Alias of POST /v1/tools/audio_analyze/call. Body: {args:{action:'classify',file:'/absolute/path.wav',top_k:5},timeout_ms:90000}. Input must be caller-supplied mono PCM16/16 kHz WAV; no microphone capture, dependency install, or model download occurs on this path. Returns result.data.classifications.",
|
|
4246
|
+
"responses": {
|
|
4247
|
+
"200": {
|
|
4248
|
+
"description": "Structured AudioSet-521 classification"
|
|
4249
|
+
},
|
|
4250
|
+
"409": {
|
|
4251
|
+
"description": "One request runs and one waits; additional work is busy"
|
|
4252
|
+
},
|
|
4253
|
+
"503": {
|
|
4254
|
+
"description": "Classifier not ready"
|
|
4255
|
+
}
|
|
4256
|
+
}
|
|
4257
|
+
}
|
|
4258
|
+
},
|
|
4259
|
+
"source_of_truth": [
|
|
4260
|
+
"GET /openapi.json",
|
|
4261
|
+
"packages/cli/src/api/openapi.ts"
|
|
4262
|
+
]
|
|
4263
|
+
},
|
|
4264
|
+
{
|
|
4265
|
+
"id": "api.v1-audio-classify-health",
|
|
4266
|
+
"kind": "api",
|
|
4267
|
+
"title": "/v1/audio/classify/health",
|
|
4268
|
+
"summary": "Jetson CUDA/TensorRT YAMNet readiness",
|
|
4269
|
+
"aliases": [
|
|
4270
|
+
"/v1/audio/classify/health"
|
|
4271
|
+
],
|
|
4272
|
+
"keywords": [
|
|
4273
|
+
"rest",
|
|
4274
|
+
"openapi",
|
|
4275
|
+
"GET",
|
|
4276
|
+
"Audio",
|
|
4277
|
+
"v1",
|
|
4278
|
+
"audio",
|
|
4279
|
+
"classify",
|
|
4280
|
+
"health"
|
|
4281
|
+
],
|
|
4282
|
+
"maturity": "stable",
|
|
4283
|
+
"layer": "interface",
|
|
4284
|
+
"audiences": [
|
|
4285
|
+
"integrator",
|
|
4286
|
+
"service-agent",
|
|
4287
|
+
"coding-agent"
|
|
4288
|
+
],
|
|
4289
|
+
"interfaces": [
|
|
4290
|
+
{
|
|
4291
|
+
"type": "rest",
|
|
4292
|
+
"target": "GET /v1/audio/classify/health"
|
|
4293
|
+
},
|
|
4294
|
+
{
|
|
4295
|
+
"type": "openapi",
|
|
4296
|
+
"target": "/openapi.json"
|
|
4297
|
+
}
|
|
4298
|
+
],
|
|
4299
|
+
"references": [
|
|
4300
|
+
{
|
|
4301
|
+
"type": "source",
|
|
4302
|
+
"target": "packages/cli/src/api/openapi.ts",
|
|
4303
|
+
"relation": "openapi-source"
|
|
4304
|
+
},
|
|
4305
|
+
{
|
|
4306
|
+
"type": "documentation",
|
|
4307
|
+
"target": "docs/reference/rest-api.md",
|
|
4308
|
+
"relation": "endpoint-inventory"
|
|
4309
|
+
}
|
|
4310
|
+
],
|
|
4311
|
+
"methods": [
|
|
4312
|
+
"GET"
|
|
4313
|
+
],
|
|
4314
|
+
"tags": [
|
|
4315
|
+
"Audio"
|
|
4316
|
+
],
|
|
4317
|
+
"operations": {
|
|
4318
|
+
"get": {
|
|
4319
|
+
"summary": "Jetson CUDA/TensorRT YAMNet readiness",
|
|
4320
|
+
"tags": [
|
|
4321
|
+
"Audio"
|
|
4322
|
+
],
|
|
4323
|
+
"description": "Reports real pinned-model, TensorRT worker, CUDA placement, warmup, queue, and error state. General /health is not an audio readiness signal.",
|
|
4324
|
+
"responses": {
|
|
4325
|
+
"200": {
|
|
4326
|
+
"description": "Warm audio classifier readiness"
|
|
4327
|
+
},
|
|
4328
|
+
"503": {
|
|
4329
|
+
"description": "Audio classifier is installing, stopped, or unavailable"
|
|
4330
|
+
}
|
|
4331
|
+
}
|
|
4332
|
+
}
|
|
4333
|
+
},
|
|
4334
|
+
"source_of_truth": [
|
|
4335
|
+
"GET /openapi.json",
|
|
4336
|
+
"packages/cli/src/api/openapi.ts"
|
|
4337
|
+
]
|
|
4338
|
+
},
|
|
4339
|
+
{
|
|
4340
|
+
"id": "api.v1-audio-classify-setup",
|
|
4341
|
+
"kind": "api",
|
|
4342
|
+
"title": "/v1/audio/classify/setup",
|
|
4343
|
+
"summary": "Provision and warm Jetson CUDA/TensorRT YAMNet",
|
|
4344
|
+
"aliases": [
|
|
4345
|
+
"/v1/audio/classify/setup"
|
|
4346
|
+
],
|
|
4347
|
+
"keywords": [
|
|
4348
|
+
"rest",
|
|
4349
|
+
"openapi",
|
|
4350
|
+
"POST",
|
|
4351
|
+
"Audio",
|
|
4352
|
+
"v1",
|
|
4353
|
+
"audio",
|
|
4354
|
+
"classify",
|
|
4355
|
+
"setup"
|
|
4356
|
+
],
|
|
4357
|
+
"maturity": "stable",
|
|
4358
|
+
"layer": "interface",
|
|
4359
|
+
"audiences": [
|
|
4360
|
+
"integrator",
|
|
4361
|
+
"service-agent",
|
|
4362
|
+
"coding-agent"
|
|
4363
|
+
],
|
|
4364
|
+
"interfaces": [
|
|
4365
|
+
{
|
|
4366
|
+
"type": "rest",
|
|
4367
|
+
"target": "POST /v1/audio/classify/setup"
|
|
4368
|
+
},
|
|
4369
|
+
{
|
|
4370
|
+
"type": "openapi",
|
|
4371
|
+
"target": "/openapi.json"
|
|
4372
|
+
}
|
|
4373
|
+
],
|
|
4374
|
+
"references": [
|
|
4375
|
+
{
|
|
4376
|
+
"type": "source",
|
|
4377
|
+
"target": "packages/cli/src/api/openapi.ts",
|
|
4378
|
+
"relation": "openapi-source"
|
|
4379
|
+
},
|
|
4380
|
+
{
|
|
4381
|
+
"type": "documentation",
|
|
4382
|
+
"target": "docs/reference/rest-api.md",
|
|
4383
|
+
"relation": "endpoint-inventory"
|
|
4384
|
+
}
|
|
4385
|
+
],
|
|
4386
|
+
"methods": [
|
|
4387
|
+
"POST"
|
|
4388
|
+
],
|
|
4389
|
+
"tags": [
|
|
4390
|
+
"Audio"
|
|
4391
|
+
],
|
|
4392
|
+
"operations": {
|
|
4393
|
+
"post": {
|
|
4394
|
+
"summary": "Provision and warm Jetson CUDA/TensorRT YAMNet",
|
|
4395
|
+
"tags": [
|
|
4396
|
+
"Audio"
|
|
4397
|
+
],
|
|
4398
|
+
"description": "Admin-only. Downloads checksummed ONNX/class-map artifacts once, builds a JetPack-specific FP16 TensorRT engine, verifies CUDA placement, and warms the persistent worker. It never installs a generic CUDA/Torch wheel.",
|
|
4399
|
+
"responses": {
|
|
4400
|
+
"200": {
|
|
4401
|
+
"description": "Audio classifier installed and warm"
|
|
4402
|
+
},
|
|
4403
|
+
"403": {
|
|
4404
|
+
"description": "Admin scope required"
|
|
4405
|
+
},
|
|
4406
|
+
"500": {
|
|
4407
|
+
"description": "JetPack/TensorRT/CUDA preflight or setup failed"
|
|
4408
|
+
}
|
|
4409
|
+
}
|
|
4410
|
+
}
|
|
4411
|
+
},
|
|
4412
|
+
"source_of_truth": [
|
|
4413
|
+
"GET /openapi.json",
|
|
4414
|
+
"packages/cli/src/api/openapi.ts"
|
|
4415
|
+
]
|
|
4416
|
+
},
|
|
4187
4417
|
{
|
|
4188
4418
|
"id": "api.v1-audio-embed",
|
|
4189
4419
|
"kind": "api",
|
|
@@ -10427,7 +10657,7 @@
|
|
|
10427
10657
|
"id": "api.v1-ocr-advanced",
|
|
10428
10658
|
"kind": "api",
|
|
10429
10659
|
"title": "/v1/ocr/advanced",
|
|
10430
|
-
"summary": "
|
|
10660
|
+
"summary": "Alias of POST /v1/tools/ocr_image_advanced/call — managed multi-variant Tesseract OCR",
|
|
10431
10661
|
"aliases": [
|
|
10432
10662
|
"/v1/ocr/advanced"
|
|
10433
10663
|
],
|
|
@@ -10435,6 +10665,7 @@
|
|
|
10435
10665
|
"rest",
|
|
10436
10666
|
"openapi",
|
|
10437
10667
|
"POST",
|
|
10668
|
+
"Tools",
|
|
10438
10669
|
"Vision",
|
|
10439
10670
|
"v1",
|
|
10440
10671
|
"ocr",
|
|
@@ -10473,23 +10704,94 @@
|
|
|
10473
10704
|
"POST"
|
|
10474
10705
|
],
|
|
10475
10706
|
"tags": [
|
|
10707
|
+
"Tools",
|
|
10476
10708
|
"Vision"
|
|
10477
10709
|
],
|
|
10478
10710
|
"operations": {
|
|
10479
10711
|
"post": {
|
|
10480
|
-
"summary": "
|
|
10712
|
+
"summary": "Alias of POST /v1/tools/ocr_image_advanced/call — managed multi-variant Tesseract OCR",
|
|
10481
10713
|
"tags": [
|
|
10714
|
+
"Tools",
|
|
10482
10715
|
"Vision"
|
|
10483
10716
|
],
|
|
10717
|
+
"description": "Uses the identical advanced OCR tool exposed to agents: auto-provisions Tesseract, requested traineddata, and the managed Python pipeline. Body is the canonical direct-tool envelope; result.data contains the parsed OCR pipeline result.",
|
|
10718
|
+
"requestBody": {
|
|
10719
|
+
"required": true,
|
|
10720
|
+
"content": {
|
|
10721
|
+
"application/json": {
|
|
10722
|
+
"schema": {
|
|
10723
|
+
"type": "object",
|
|
10724
|
+
"required": [
|
|
10725
|
+
"args"
|
|
10726
|
+
],
|
|
10727
|
+
"properties": {
|
|
10728
|
+
"args": {
|
|
10729
|
+
"type": "object",
|
|
10730
|
+
"required": [
|
|
10731
|
+
"image"
|
|
10732
|
+
],
|
|
10733
|
+
"properties": {
|
|
10734
|
+
"image": {
|
|
10735
|
+
"type": "string"
|
|
10736
|
+
},
|
|
10737
|
+
"language": {
|
|
10738
|
+
"type": "string",
|
|
10739
|
+
"example": "eng+fra"
|
|
10740
|
+
},
|
|
10741
|
+
"regions": {
|
|
10742
|
+
"type": "boolean"
|
|
10743
|
+
},
|
|
10744
|
+
"region": {
|
|
10745
|
+
"type": "string",
|
|
10746
|
+
"example": "0,0,1200,180"
|
|
10747
|
+
},
|
|
10748
|
+
"psm": {
|
|
10749
|
+
"type": "integer",
|
|
10750
|
+
"enum": [
|
|
10751
|
+
4,
|
|
10752
|
+
6,
|
|
10753
|
+
11
|
|
10754
|
+
]
|
|
10755
|
+
},
|
|
10756
|
+
"output_dir": {
|
|
10757
|
+
"type": "string"
|
|
10758
|
+
},
|
|
10759
|
+
"batch": {
|
|
10760
|
+
"type": "boolean"
|
|
10761
|
+
},
|
|
10762
|
+
"debug": {
|
|
10763
|
+
"type": "boolean"
|
|
10764
|
+
}
|
|
10765
|
+
}
|
|
10766
|
+
},
|
|
10767
|
+
"timeout_ms": {
|
|
10768
|
+
"type": "integer",
|
|
10769
|
+
"description": "Defaults to 300000ms; maximum 600000ms."
|
|
10770
|
+
},
|
|
10771
|
+
"max_output_chars": {
|
|
10772
|
+
"type": "integer"
|
|
10773
|
+
},
|
|
10774
|
+
"profile": {
|
|
10775
|
+
"type": "string"
|
|
10776
|
+
},
|
|
10777
|
+
"working_dir": {
|
|
10778
|
+
"type": "string",
|
|
10779
|
+
"description": "Admin scope only."
|
|
10780
|
+
}
|
|
10781
|
+
}
|
|
10782
|
+
}
|
|
10783
|
+
}
|
|
10784
|
+
}
|
|
10785
|
+
},
|
|
10484
10786
|
"responses": {
|
|
10485
10787
|
"200": {
|
|
10486
|
-
"description": "
|
|
10788
|
+
"description": "Direct-tool result envelope; consume result.data for structured OCR output."
|
|
10487
10789
|
},
|
|
10488
10790
|
"400": {
|
|
10489
|
-
"description": "
|
|
10791
|
+
"description": "Invalid direct-tool request or OCR arguments"
|
|
10490
10792
|
},
|
|
10491
|
-
"
|
|
10492
|
-
"description": "
|
|
10793
|
+
"403": {
|
|
10794
|
+
"description": "Tool scope/profile/working-directory denied"
|
|
10493
10795
|
}
|
|
10494
10796
|
}
|
|
10495
10797
|
}
|
|
@@ -28624,7 +28926,7 @@
|
|
|
28624
28926
|
"id": "guide.rest-endpoints-voice-vision",
|
|
28625
28927
|
"kind": "guide",
|
|
28626
28928
|
"title": "Voice, Audio, Vision, And Voicechat",
|
|
28627
|
-
"summary": "POST /v1/
|
|
28929
|
+
"summary": "POST /v1/ocr/advanced is a compatibility alias for the exact agent-facing ocrimageadvanced tool. Use the same direct-tool envelope; the response retains display text in result.output and returns the parsed pipeline payload in result.data.",
|
|
28628
28930
|
"keywords": [
|
|
28629
28931
|
"rest",
|
|
28630
28932
|
"endpoints",
|
package/docs/DISCOVERY.md
CHANGED
|
@@ -98,6 +98,9 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
98
98
|
| `api.v1-asr-status` | /v1/asr/status | Read the selected ASR engine/model and runtime status |
|
|
99
99
|
| `api.v1-asr-test` | /v1/asr/test | Test the selected ASR engine using an uploaded audio sample |
|
|
100
100
|
| `api.v1-asr-transcriptions` | /v1/asr/transcriptions | Transcribe audio with the selected ASR engine |
|
|
101
|
+
| `api.v1-audio-classify` | /v1/audio/classify | Classify a supplied WAV with persistent CUDA/TensorRT YAMNet |
|
|
102
|
+
| `api.v1-audio-classify-health` | /v1/audio/classify/health | Jetson CUDA/TensorRT YAMNet readiness |
|
|
103
|
+
| `api.v1-audio-classify-setup` | /v1/audio/classify/setup | Provision and warm Jetson CUDA/TensorRT YAMNet |
|
|
101
104
|
| `api.v1-audio-embed` | /v1/audio/embed | Create an audio embedding for uploaded or referenced audio |
|
|
102
105
|
| `api.v1-audio-speech` | /v1/audio/speech | OpenAI-compatible alias of /v1/voice/tts (input/voice/response_format names) |
|
|
103
106
|
| `api.v1-audio-transcriptions` | /v1/audio/transcriptions | OpenAI-compatible alias of /v1/asr/transcriptions |
|
|
@@ -167,7 +170,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
167
170
|
| `api.v1-memory-write` | /v1/memory/write | Write a memory entry (PT-04) |
|
|
168
171
|
| `api.v1-models` | /v1/models | List aggregated models |
|
|
169
172
|
| `api.v1-nexus-status` | /v1/nexus/status | Nexus peer state |
|
|
170
|
-
| `api.v1-ocr-advanced` | /v1/ocr/advanced |
|
|
173
|
+
| `api.v1-ocr-advanced` | /v1/ocr/advanced | Alias of POST /v1/tools/ocr_image_advanced/call — managed multi-variant Tesseract OCR |
|
|
171
174
|
| `api.v1-ollama-pool-cleanup` | /v1/ollama/pool/cleanup | Clean up stale Ollama pool processes |
|
|
172
175
|
| `api.v1-ollama-pool-processes` | /v1/ollama/pool/processes | Scan local Ollama pool processes |
|
|
173
176
|
| `api.v1-profiles` | /v1/profiles | List tool profiles; Create tool profile |
|
|
@@ -458,7 +461,7 @@ Daemon equivalents are `GET /v1/discovery/bootstrap`, `GET /v1/discovery?q=<inte
|
|
|
458
461
|
| `guide.rest-endpoints-run` | Runs, Jobs, Todos, And Scheduled Work | Submits a long-running task to the daemon and returns an accepted job record. Runs are tracked under .omnius/jobs/. |
|
|
459
462
|
| `guide.rest-endpoints-skills` | Skills And Commands | The REST docs bundle is available as: |
|
|
460
463
|
| `guide.rest-endpoints-tools` | Tools, MCP, Hooks, Agents, And Code Graph | GET /v1/tools and POST /v1/tools/{name}/call use the same direct-call registry, built from the @omnius/execution tool manifest plus virtual lifecycle tools such as taskcomplete. If a tool appears in /v1/tools with directcallable: true, the same name is callable at /v1/tools/{name}/call. |
|
|
461
|
-
| `guide.rest-endpoints-voice-vision` | Voice, Audio, Vision, And Voicechat | POST /v1/
|
|
464
|
+
| `guide.rest-endpoints-voice-vision` | Voice, Audio, Vision, And Voicechat | POST /v1/ocr/advanced is a compatibility alias for the exact agent-facing ocrimageadvanced tool. Use the same direct-tool envelope; the response retains display text in result.output and returns the parsed pipeline payload in result.data. |
|
|
462
465
|
| `guide.rest-errors-pagination-etags` | Errors, Pagination, ETags, And Request IDs | The OpenAPI contract documents RFC 7807 Problem Details for common errors: |
|
|
463
466
|
| `guide.rest-examples-curl` | Curl Examples | curl -s "$BASE/openapi.json" \| jq '.info.title, .info.version' |
|
|
464
467
|
| `guide.rest-examples-openai-sdk` | OpenAI SDK Examples | Omnius exposes an OpenAI-compatible chat-completions endpoint at /v1/chat/completions. |
|
|
@@ -290,6 +290,9 @@ the store, `OMNIUS_DISABLE_CONTEXT_WINDOW_DUMPS=1` to disable it, and
|
|
|
290
290
|
| `POST` | `/v1/voice/asr-models/switch` | Compatibility activation alias |
|
|
291
291
|
| `POST` | `/v1/voice/tts` | Synthesize speech |
|
|
292
292
|
| `POST` | `/v1/audio/speech` | OpenAI-compatible TTS alias |
|
|
293
|
+
| `GET` | `/v1/audio/classify/health` | Jetson CUDA/TensorRT YAMNet readiness |
|
|
294
|
+
| `POST` | `/v1/audio/classify/setup` | Provision and warm the pinned JetPack TensorRT YAMNet runtime |
|
|
295
|
+
| `POST` | `/v1/audio/classify` | Direct-tool compatible CUDA audio classification |
|
|
293
296
|
| `POST` | `/v1/voice/transcribe` | Transcribe audio |
|
|
294
297
|
| `POST` | `/v1/voice/asr` | Legacy transcription alias |
|
|
295
298
|
| `POST` | `/v1/audio/transcriptions` | OpenAI-compatible transcription alias |
|
|
@@ -306,7 +309,7 @@ the store, `OMNIUS_DISABLE_CONTEXT_WINDOW_DUMPS=1` to disable it, and
|
|
|
306
309
|
| `POST` | `/v1/vision/describe` | Vision describe placeholder |
|
|
307
310
|
| `POST` | `/v1/vision/embed` | Create a vision embedding from media |
|
|
308
311
|
| `POST` | `/v1/audio/embed` | Create an audio embedding from audio input |
|
|
309
|
-
| `POST` | `/v1/ocr/advanced` |
|
|
312
|
+
| `POST` | `/v1/ocr/advanced` | Agent-equivalent managed advanced OCR (alias of `/v1/tools/ocr_image_advanced/call`) |
|
|
310
313
|
|
|
311
314
|
`POST /v1/voice/tts` and `/v1/audio/speech` automatically warm the daemon.
|
|
312
315
|
An explicit model must render exactly or the request fails; Omnius does not
|
package/docs/rest/INDEX.md
CHANGED
|
@@ -113,7 +113,7 @@ Scopes:
|
|
|
113
113
|
| Nexus | `/v1/nexus/status`, `/v1/sponsors` |
|
|
114
114
|
| Ollama pool | `/v1/ollama/pool/processes`, `/v1/ollama/pool/cleanup` |
|
|
115
115
|
| Voice and audio | `/v1/voice/state`, `/v1/voice/models`, `/v1/voice/tts`, `/v1/audio/speech`, `/v1/asr/engines`, `/v1/asr/selection`, `/v1/asr/activate`, `/v1/asr/transcriptions`, `/v1/asr/test`, `/v1/audio/transcriptions`, `/v1/voicechat/ws`, `/v1/media/av/analyze` |
|
|
116
|
-
| Vision/audio
|
|
116
|
+
| Vision/audio/OCR | `/v1/vision/describe`, `/v1/vision/embed`, `/v1/audio/embed`, `/v1/ocr/advanced` (agent-equivalent advanced OCR) |
|
|
117
117
|
| Projects | `/v1/projects`, `/v1/projects/current`, `/v1/projects/switch`, `/v1/projects/register`, `/v1/projects/rename`, `/v1/projects/scan`, `/v1/projects/preferences` |
|
|
118
118
|
| Code graph | `/v1/codegraph/snapshot`, `/v1/codegraph/events` |
|
|
119
119
|
| Scheduled jobs | `/v1/scheduled`, `/v1/scheduled/all`, `/v1/scheduled/status`, `/v1/scheduled/kill`, `/v1/scheduled/fixup`, `/v1/scheduled/reconcile` |
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
| `GET`/`POST` | `/v1/voice/asr-models` · `/v1/voice/asr-models/switch` | Compatibility registry/activation aliases |
|
|
18
18
|
| `POST` | `/v1/voice/tts` | Synthesize text |
|
|
19
19
|
| `POST` | `/v1/audio/speech` | OpenAI-compatible TTS alias |
|
|
20
|
+
| `GET` | `/v1/audio/classify/health` | Jetson CUDA/TensorRT YAMNet readiness |
|
|
21
|
+
| `POST` | `/v1/audio/classify/setup` | Provision and warm pinned JetPack TensorRT YAMNet |
|
|
22
|
+
| `POST` | `/v1/audio/classify` | Classify caller-supplied WAV via direct-tool compatible contract |
|
|
20
23
|
| `POST` | `/v1/voice/transcribe` | Transcribe audio |
|
|
21
24
|
| `POST` | `/v1/audio/transcriptions` | OpenAI-compatible transcription alias |
|
|
22
25
|
| `POST` | `/v1/voice/transcribe/stream` | Isolated final transcription over SSE |
|
|
@@ -29,9 +32,28 @@
|
|
|
29
32
|
| `POST` | `/v1/voice/speak` | Synthesize and broadcast to voicechat clients |
|
|
30
33
|
| `WS` | `/v1/voicechat/ws` | Full-duplex voicechat WebSocket |
|
|
31
34
|
| `POST` | `/v1/vision/describe` | Vision describe placeholder/deferred endpoint |
|
|
32
|
-
| `POST` | `/v1/ocr/advanced` |
|
|
35
|
+
| `POST` | `/v1/ocr/advanced` | Agent-equivalent managed advanced OCR (alias of `/v1/tools/ocr_image_advanced/call`) |
|
|
33
36
|
| `POST` | `/v1/media/av/analyze` | Grounded AV/audio comprehension of a media file into entities/events |
|
|
34
37
|
|
|
38
|
+
## Advanced OCR
|
|
39
|
+
|
|
40
|
+
`POST /v1/ocr/advanced` is a compatibility alias for the exact
|
|
41
|
+
agent-facing `ocr_image_advanced` tool. Use the same direct-tool envelope;
|
|
42
|
+
the response retains display text in `result.output` and returns the parsed
|
|
43
|
+
pipeline payload in `result.data`.
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
curl -sS -X POST http://127.0.0.1:11435/v1/ocr/advanced \
|
|
47
|
+
-H 'content-type: application/json' \
|
|
48
|
+
-d '{"args":{"image":"/data/invoice.png","language":"eng","psm":6},"timeout_ms":300000}'
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
On first use, Omnius verifies and provisions Tesseract, requested traineddata,
|
|
52
|
+
and the advanced Python OCR pipeline. Jetson uses Ubuntu/JetPack system Python
|
|
53
|
+
packages in an isolated system-site venv; it never installs generic CUDA,
|
|
54
|
+
Torch, or OpenCV replacements. The caller needs `run` scope because optional
|
|
55
|
+
`output_dir`, batch, and debug modes write OCR artifacts.
|
|
56
|
+
|
|
35
57
|
## TTS
|
|
36
58
|
|
|
37
59
|
`POST /v1/voice/tts` returns audio bytes. `format` can be `wav` or `pcm`. `X-Sample-Rate` reports the sample rate.
|
|
@@ -62,6 +84,44 @@ back to CPU or another device. Discrete Linux uses `nvidia-smi`; Jetson/L4T,
|
|
|
62
84
|
where NVIDIA does not ship `nvidia-smi`, uses `tegrastats` plus CUDA Torch
|
|
63
85
|
device properties.
|
|
64
86
|
|
|
87
|
+
## Jetson Audio Classification
|
|
88
|
+
|
|
89
|
+
`audio_analyze` classification on Jetson is a persistent, CUDA-enabled FP16
|
|
90
|
+
TensorRT YAMNet worker—not a per-call TensorFlow/TF-Hub process. The daemon
|
|
91
|
+
auto-provisions it on a Jetson unless `OMNIUS_AUDIO_AUTO_SETUP=0`; operators may
|
|
92
|
+
also explicitly invoke `POST /v1/audio/classify/setup` with admin scope. Setup
|
|
93
|
+
downloads the pinned ONNX model and class map once, verifies their SHA-256
|
|
94
|
+
digests, builds an engine for the local JetPack/TensorRT stack, checks the
|
|
95
|
+
approved integrated CUDA device (`OMNIUS_AUDIO_CUDA_VISIBLE_DEVICES=0`), and
|
|
96
|
+
warms the worker.
|
|
97
|
+
|
|
98
|
+
Poll `GET /v1/audio/classify/health` before sending classification work. A
|
|
99
|
+
general `/health` success is not sufficient. The response reports readiness,
|
|
100
|
+
backend (`tensorrt-fp16`), device, model digest, warmup timing, queue depth, and
|
|
101
|
+
errors. If the worker exits, readiness becomes false and the next health poll
|
|
102
|
+
schedules its local restart without restarting Egg or Omnius.
|
|
103
|
+
|
|
104
|
+
The compatible request shape is:
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"args": {
|
|
109
|
+
"action": "classify",
|
|
110
|
+
"file": "/tmp/egg-audio-comprehension.wav",
|
|
111
|
+
"top_k": 5
|
|
112
|
+
},
|
|
113
|
+
"timeout_ms": 90000
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Send it to either `POST /v1/tools/audio_analyze/call` or the
|
|
118
|
+
`POST /v1/audio/classify` alias. Inputs must be caller-supplied mono PCM16,
|
|
119
|
+
16 kHz WAV files; classification never captures from `default`, normalizes the
|
|
120
|
+
Egg signal again, installs packages, or fetches weights. The response is
|
|
121
|
+
machine-readable at `result.data.classifications` with model/backend/digest,
|
|
122
|
+
audio facts, and queue/decode/inference/total timings. One job runs and one may
|
|
123
|
+
wait; additional requests receive a typed `audio_classifier_busy` failure.
|
|
124
|
+
|
|
65
125
|
## Voicechat WebSocket
|
|
66
126
|
|
|
67
127
|
`/v1/voicechat/ws` supports full-duplex realtime voice.
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.629",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omnius",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.629",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
|
@@ -2408,9 +2408,9 @@
|
|
|
2408
2408
|
}
|
|
2409
2409
|
},
|
|
2410
2410
|
"node_modules/ansi-regex": {
|
|
2411
|
-
"version": "6.
|
|
2412
|
-
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.
|
|
2413
|
-
"integrity": "sha512-
|
|
2411
|
+
"version": "6.3.0",
|
|
2412
|
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz",
|
|
2413
|
+
"integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==",
|
|
2414
2414
|
"license": "MIT",
|
|
2415
2415
|
"engines": {
|
|
2416
2416
|
"node": ">=12"
|
|
@@ -2602,9 +2602,9 @@
|
|
|
2602
2602
|
}
|
|
2603
2603
|
},
|
|
2604
2604
|
"node_modules/bare-url": {
|
|
2605
|
-
"version": "2.5.
|
|
2606
|
-
"resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.5.
|
|
2607
|
-
"integrity": "sha512-
|
|
2605
|
+
"version": "2.5.2",
|
|
2606
|
+
"resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.5.2.tgz",
|
|
2607
|
+
"integrity": "sha512-L13PCJzKG8RGvx8V1/DdMi12ERhC3tprr7/8a94BxpmnRsFqxh5XZNdhtMxu5HPkRshYOOWRGY8lDP7ZhpG9Cg==",
|
|
2608
2608
|
"license": "Apache-2.0",
|
|
2609
2609
|
"optional": true,
|
|
2610
2610
|
"dependencies": {
|
|
@@ -3498,9 +3498,9 @@
|
|
|
3498
3498
|
}
|
|
3499
3499
|
},
|
|
3500
3500
|
"node_modules/eventsource-parser": {
|
|
3501
|
-
"version": "3.1.
|
|
3502
|
-
"resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.
|
|
3503
|
-
"integrity": "sha512-
|
|
3501
|
+
"version": "3.1.1",
|
|
3502
|
+
"resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz",
|
|
3503
|
+
"integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==",
|
|
3504
3504
|
"license": "MIT",
|
|
3505
3505
|
"engines": {
|
|
3506
3506
|
"node": ">=18.0.0"
|
|
@@ -4440,9 +4440,9 @@
|
|
|
4440
4440
|
}
|
|
4441
4441
|
},
|
|
4442
4442
|
"node_modules/is-loopback-addr": {
|
|
4443
|
-
"version": "2.0
|
|
4444
|
-
"resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.
|
|
4445
|
-
"integrity": "sha512-
|
|
4443
|
+
"version": "2.1.0",
|
|
4444
|
+
"resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.1.0.tgz",
|
|
4445
|
+
"integrity": "sha512-77bB59Coq+vGTibZlnuYVU1bUuiboGZ62ZJ7TqmgYKb+hko9dSlqS5OfqvmPZhwJys48At4y4D1UJP3GuvoXtQ==",
|
|
4446
4446
|
"license": "MIT"
|
|
4447
4447
|
},
|
|
4448
4448
|
"node_modules/is-network-error": {
|
|
@@ -5519,9 +5519,9 @@
|
|
|
5519
5519
|
}
|
|
5520
5520
|
},
|
|
5521
5521
|
"node_modules/node-addon-api": {
|
|
5522
|
-
"version": "8.9.
|
|
5523
|
-
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.9.
|
|
5524
|
-
"integrity": "sha512-
|
|
5522
|
+
"version": "8.9.2",
|
|
5523
|
+
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.9.2.tgz",
|
|
5524
|
+
"integrity": "sha512-VijLXbi3UACN69I0JVXJsX4tjACjNoQDgv2gTF6sx2wWEi8tkSg2eX8p5gSIFi8z2+DL3oHmY6OyKce38SDolg==",
|
|
5525
5525
|
"license": "MIT",
|
|
5526
5526
|
"optional": true,
|
|
5527
5527
|
"engines": {
|