@soederpop/luca 0.0.34 → 0.0.36
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/bun.lock +0 -1
- package/docs/README.md +1 -1
- package/docs/TABLE-OF-CONTENTS.md +0 -1
- package/docs/bootstrap/SKILL.md +1 -1
- package/package.json +2 -3
- package/scripts/examples/using-assistant-with-mcp.ts +2 -7
- package/scripts/test-linux-binary.sh +80 -0
- package/src/bootstrap/generated.ts +2 -92
- package/src/cli/build-info.ts +2 -2
- package/src/introspection/generated.agi.ts +1 -260
- package/src/introspection/generated.node.ts +780 -1039
- package/src/introspection/generated.web.ts +1 -1
- package/src/node/container.ts +0 -5
- package/src/python/generated.ts +1 -1
- package/src/scaffolds/generated.ts +1 -1
- package/docs/examples/port-exposer.md +0 -89
- package/src/node/features/port-exposer.ts +0 -351
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { setBuildTimeData, setContainerBuildTimeData } from './index.js';
|
|
2
2
|
|
|
3
3
|
// Auto-generated introspection registry data
|
|
4
|
-
// Generated at: 2026-03-
|
|
4
|
+
// Generated at: 2026-03-28T00:36:29.836Z
|
|
5
5
|
|
|
6
6
|
setBuildTimeData('features.googleDocs', {
|
|
7
7
|
"id": "features.googleDocs",
|
|
@@ -8861,136 +8861,6 @@ setBuildTimeData('features.processManager', {
|
|
|
8861
8861
|
}
|
|
8862
8862
|
});
|
|
8863
8863
|
|
|
8864
|
-
setBuildTimeData('portExposer', {
|
|
8865
|
-
"id": "portExposer",
|
|
8866
|
-
"description": "Port Exposer Feature Exposes local HTTP services via ngrok with SSL-enabled public URLs. Perfect for development, testing, and sharing local services securely. Features: - SSL-enabled public URLs for local services - Custom subdomains and domains (with paid plans) - Authentication options (basic auth, OAuth) - Regional endpoint selection - Connection state management",
|
|
8867
|
-
"shortcut": "portExposer",
|
|
8868
|
-
"className": "PortExposer",
|
|
8869
|
-
"methods": {
|
|
8870
|
-
"expose": {
|
|
8871
|
-
"description": "Expose the local port via ngrok. Creates an ngrok tunnel to the specified local port and returns the SSL-enabled public URL. Emits `exposed` on success or `error` on failure.",
|
|
8872
|
-
"parameters": {
|
|
8873
|
-
"port": {
|
|
8874
|
-
"type": "number",
|
|
8875
|
-
"description": "Optional port override; falls back to `options.port`"
|
|
8876
|
-
}
|
|
8877
|
-
},
|
|
8878
|
-
"required": [],
|
|
8879
|
-
"returns": "Promise<string>",
|
|
8880
|
-
"examples": [
|
|
8881
|
-
{
|
|
8882
|
-
"language": "ts",
|
|
8883
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nconst url = await exposer.expose()\nconsole.log(`Public URL: ${url}`)\n\n// Override port at call time\nconst url2 = await exposer.expose(8080)"
|
|
8884
|
-
}
|
|
8885
|
-
]
|
|
8886
|
-
},
|
|
8887
|
-
"close": {
|
|
8888
|
-
"description": "Stop exposing the port and close the ngrok tunnel. Tears down the ngrok listener, resets connection state, and emits `closed`. Safe to call when no tunnel is active (no-op).",
|
|
8889
|
-
"parameters": {},
|
|
8890
|
-
"required": [],
|
|
8891
|
-
"returns": "Promise<void>",
|
|
8892
|
-
"examples": [
|
|
8893
|
-
{
|
|
8894
|
-
"language": "ts",
|
|
8895
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nawait exposer.expose()\n// ... later\nawait exposer.close()\nconsole.log(exposer.isConnected()) // false"
|
|
8896
|
-
}
|
|
8897
|
-
]
|
|
8898
|
-
},
|
|
8899
|
-
"getPublicUrl": {
|
|
8900
|
-
"description": "Get the current public URL if connected. Returns the live URL from the ngrok listener, or `undefined` if no tunnel is active.",
|
|
8901
|
-
"parameters": {},
|
|
8902
|
-
"required": [],
|
|
8903
|
-
"returns": "string | undefined",
|
|
8904
|
-
"examples": [
|
|
8905
|
-
{
|
|
8906
|
-
"language": "ts",
|
|
8907
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nawait exposer.expose()\nconsole.log(exposer.getPublicUrl()) // 'https://abc123.ngrok.io'"
|
|
8908
|
-
}
|
|
8909
|
-
]
|
|
8910
|
-
},
|
|
8911
|
-
"isConnected": {
|
|
8912
|
-
"description": "Check if the ngrok tunnel is currently connected.",
|
|
8913
|
-
"parameters": {},
|
|
8914
|
-
"required": [],
|
|
8915
|
-
"returns": "boolean",
|
|
8916
|
-
"examples": [
|
|
8917
|
-
{
|
|
8918
|
-
"language": "ts",
|
|
8919
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nconsole.log(exposer.isConnected()) // false\nawait exposer.expose()\nconsole.log(exposer.isConnected()) // true"
|
|
8920
|
-
}
|
|
8921
|
-
]
|
|
8922
|
-
},
|
|
8923
|
-
"getConnectionInfo": {
|
|
8924
|
-
"description": "Get a snapshot of the current connection information. Returns an object with the tunnel's connected status, public URL, local port, connection timestamp, and session metadata.",
|
|
8925
|
-
"parameters": {},
|
|
8926
|
-
"required": [],
|
|
8927
|
-
"returns": "void",
|
|
8928
|
-
"examples": [
|
|
8929
|
-
{
|
|
8930
|
-
"language": "ts",
|
|
8931
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nawait exposer.expose()\nconst info = exposer.getConnectionInfo()\nconsole.log(info.publicUrl, info.localPort, info.connectedAt)"
|
|
8932
|
-
}
|
|
8933
|
-
]
|
|
8934
|
-
},
|
|
8935
|
-
"reconnect": {
|
|
8936
|
-
"description": "Close the existing tunnel and re-expose with optionally updated options. Calls `close()` first, merges any new options, then calls `expose()`.",
|
|
8937
|
-
"parameters": {
|
|
8938
|
-
"newOptions": {
|
|
8939
|
-
"type": "Partial<PortExposerOptions>",
|
|
8940
|
-
"description": "Optional partial options to merge before reconnecting"
|
|
8941
|
-
}
|
|
8942
|
-
},
|
|
8943
|
-
"required": [],
|
|
8944
|
-
"returns": "Promise<string>",
|
|
8945
|
-
"examples": [
|
|
8946
|
-
{
|
|
8947
|
-
"language": "ts",
|
|
8948
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nawait exposer.expose()\n// Switch to a different port\nconst newUrl = await exposer.reconnect({ port: 8080 })"
|
|
8949
|
-
}
|
|
8950
|
-
]
|
|
8951
|
-
},
|
|
8952
|
-
"disable": {
|
|
8953
|
-
"description": "Disable the feature, ensuring the ngrok tunnel is closed first. Overrides the base `disable()` to guarantee that the tunnel is torn down before the feature is marked as disabled.",
|
|
8954
|
-
"parameters": {},
|
|
8955
|
-
"required": [],
|
|
8956
|
-
"returns": "Promise<this>",
|
|
8957
|
-
"examples": [
|
|
8958
|
-
{
|
|
8959
|
-
"language": "ts",
|
|
8960
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nawait exposer.expose()\nawait exposer.disable()"
|
|
8961
|
-
}
|
|
8962
|
-
]
|
|
8963
|
-
}
|
|
8964
|
-
},
|
|
8965
|
-
"getters": {},
|
|
8966
|
-
"events": {
|
|
8967
|
-
"exposed": {
|
|
8968
|
-
"name": "exposed",
|
|
8969
|
-
"description": "Event emitted by PortExposer",
|
|
8970
|
-
"arguments": {}
|
|
8971
|
-
},
|
|
8972
|
-
"error": {
|
|
8973
|
-
"name": "error",
|
|
8974
|
-
"description": "Event emitted by PortExposer",
|
|
8975
|
-
"arguments": {}
|
|
8976
|
-
},
|
|
8977
|
-
"closed": {
|
|
8978
|
-
"name": "closed",
|
|
8979
|
-
"description": "Event emitted by PortExposer",
|
|
8980
|
-
"arguments": {}
|
|
8981
|
-
}
|
|
8982
|
-
},
|
|
8983
|
-
"state": {},
|
|
8984
|
-
"options": {},
|
|
8985
|
-
"envVars": [],
|
|
8986
|
-
"examples": [
|
|
8987
|
-
{
|
|
8988
|
-
"language": "ts",
|
|
8989
|
-
"code": "// Basic usage\nconst exposer = container.feature('portExposer', { port: 3000 })\nconst url = await exposer.expose()\nconsole.log(`Service available at: ${url}`)\n\n// With custom subdomain\nconst exposer = container.feature('portExposer', {\n port: 8080,\n subdomain: 'my-app',\n authToken: 'your-ngrok-token'\n})"
|
|
8990
|
-
}
|
|
8991
|
-
]
|
|
8992
|
-
});
|
|
8993
|
-
|
|
8994
8864
|
setBuildTimeData('features.googleSheets', {
|
|
8995
8865
|
"id": "features.googleSheets",
|
|
8996
8866
|
"description": "Google Sheets feature for reading spreadsheet data as JSON, CSV, or raw arrays. Depends on the googleAuth feature for authentication. Creates a Sheets v4 API client lazily and provides convenient methods for reading tabular data.",
|
|
@@ -12382,194 +12252,244 @@ setBuildTimeData('clients.supabase', {
|
|
|
12382
12252
|
]
|
|
12383
12253
|
});
|
|
12384
12254
|
|
|
12385
|
-
setBuildTimeData('clients.
|
|
12386
|
-
"id": "clients.
|
|
12387
|
-
"description": "
|
|
12388
|
-
"shortcut": "clients.
|
|
12389
|
-
"className": "
|
|
12255
|
+
setBuildTimeData('clients.comfyui', {
|
|
12256
|
+
"id": "clients.comfyui",
|
|
12257
|
+
"description": "ComfyUI client — execute Stable Diffusion workflows via the ComfyUI API. Connects to a ComfyUI instance to queue prompts, track execution via WebSocket or polling, and download generated images. Supports both UI-format and API-format workflows with automatic conversion.",
|
|
12258
|
+
"shortcut": "clients.comfyui",
|
|
12259
|
+
"className": "ComfyUIClient",
|
|
12390
12260
|
"methods": {
|
|
12391
|
-
"
|
|
12392
|
-
"description": "
|
|
12393
|
-
"parameters": {
|
|
12394
|
-
|
|
12395
|
-
|
|
12396
|
-
|
|
12397
|
-
|
|
12398
|
-
|
|
12399
|
-
|
|
12400
|
-
|
|
12401
|
-
|
|
12261
|
+
"queuePrompt": {
|
|
12262
|
+
"description": "Queue a prompt (API-format workflow) for execution.",
|
|
12263
|
+
"parameters": {
|
|
12264
|
+
"prompt": {
|
|
12265
|
+
"type": "Record<string, any>",
|
|
12266
|
+
"description": "The API-format workflow object"
|
|
12267
|
+
},
|
|
12268
|
+
"clientId": {
|
|
12269
|
+
"type": "string",
|
|
12270
|
+
"description": "Override the client ID for this request"
|
|
12271
|
+
}
|
|
12272
|
+
},
|
|
12273
|
+
"required": [
|
|
12274
|
+
"prompt"
|
|
12275
|
+
],
|
|
12276
|
+
"returns": "Promise<{ prompt_id: string; number: number }>",
|
|
12402
12277
|
"examples": [
|
|
12403
12278
|
{
|
|
12404
12279
|
"language": "ts",
|
|
12405
|
-
"code": "await
|
|
12280
|
+
"code": "const { prompt_id } = await comfy.queuePrompt(apiWorkflow)"
|
|
12406
12281
|
}
|
|
12407
12282
|
]
|
|
12408
12283
|
},
|
|
12409
|
-
"
|
|
12410
|
-
"description": "
|
|
12284
|
+
"getQueue": {
|
|
12285
|
+
"description": "Get the current prompt queue status.",
|
|
12286
|
+
"parameters": {},
|
|
12287
|
+
"required": [],
|
|
12288
|
+
"returns": "Promise<{ queue_running: any[]; queue_pending: any[] }>"
|
|
12289
|
+
},
|
|
12290
|
+
"getHistory": {
|
|
12291
|
+
"description": "Get execution history, optionally for a specific prompt.",
|
|
12411
12292
|
"parameters": {
|
|
12412
|
-
"
|
|
12413
|
-
"type": "
|
|
12414
|
-
"description": "
|
|
12293
|
+
"promptId": {
|
|
12294
|
+
"type": "string",
|
|
12295
|
+
"description": "If provided, returns history for this prompt only"
|
|
12415
12296
|
}
|
|
12416
12297
|
},
|
|
12417
12298
|
"required": [],
|
|
12418
|
-
"returns": "Promise<any
|
|
12419
|
-
"examples": [
|
|
12420
|
-
{
|
|
12421
|
-
"language": "ts",
|
|
12422
|
-
"code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
|
|
12423
|
-
}
|
|
12424
|
-
]
|
|
12299
|
+
"returns": "Promise<Record<string, any>>"
|
|
12425
12300
|
},
|
|
12426
|
-
"
|
|
12427
|
-
"description": "Get
|
|
12301
|
+
"getSystemStats": {
|
|
12302
|
+
"description": "Get system stats including GPU memory and queue info.",
|
|
12303
|
+
"parameters": {},
|
|
12304
|
+
"required": [],
|
|
12305
|
+
"returns": "Promise<any>"
|
|
12306
|
+
},
|
|
12307
|
+
"getObjectInfo": {
|
|
12308
|
+
"description": "Get node type info with input/output schemas.",
|
|
12428
12309
|
"parameters": {
|
|
12429
|
-
"
|
|
12310
|
+
"nodeClass": {
|
|
12430
12311
|
"type": "string",
|
|
12431
|
-
"description": "
|
|
12312
|
+
"description": "If provided, returns info for this node type only"
|
|
12432
12313
|
}
|
|
12433
12314
|
},
|
|
12434
|
-
"required": [
|
|
12435
|
-
|
|
12436
|
-
],
|
|
12437
|
-
"returns": "Promise<any>",
|
|
12438
|
-
"examples": [
|
|
12439
|
-
{
|
|
12440
|
-
"language": "ts",
|
|
12441
|
-
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
12442
|
-
}
|
|
12443
|
-
]
|
|
12315
|
+
"required": [],
|
|
12316
|
+
"returns": "Promise<any>"
|
|
12444
12317
|
},
|
|
12445
|
-
"
|
|
12446
|
-
"description": "
|
|
12318
|
+
"interrupt": {
|
|
12319
|
+
"description": "Interrupt the currently executing prompt.",
|
|
12447
12320
|
"parameters": {},
|
|
12448
12321
|
"required": [],
|
|
12449
|
-
"returns": "Promise<
|
|
12450
|
-
|
|
12451
|
-
|
|
12452
|
-
|
|
12453
|
-
|
|
12322
|
+
"returns": "Promise<void>"
|
|
12323
|
+
},
|
|
12324
|
+
"getModels": {
|
|
12325
|
+
"description": "List available models, optionally filtered by type.",
|
|
12326
|
+
"parameters": {
|
|
12327
|
+
"type": {
|
|
12328
|
+
"type": "string",
|
|
12329
|
+
"description": "Model type filter (e.g., 'checkpoints', 'loras')"
|
|
12454
12330
|
}
|
|
12455
|
-
|
|
12331
|
+
},
|
|
12332
|
+
"required": [],
|
|
12333
|
+
"returns": "Promise<string[]>"
|
|
12456
12334
|
},
|
|
12457
|
-
"
|
|
12458
|
-
"description": "
|
|
12335
|
+
"getEmbeddings": {
|
|
12336
|
+
"description": "List available embedding models.",
|
|
12337
|
+
"parameters": {},
|
|
12338
|
+
"required": [],
|
|
12339
|
+
"returns": "Promise<string[]>"
|
|
12340
|
+
},
|
|
12341
|
+
"uploadImage": {
|
|
12342
|
+
"description": "Upload an image to ComfyUI's input directory.",
|
|
12459
12343
|
"parameters": {
|
|
12460
|
-
"
|
|
12344
|
+
"file": {
|
|
12345
|
+
"type": "Buffer | Blob",
|
|
12346
|
+
"description": "The image data as Buffer or Blob"
|
|
12347
|
+
},
|
|
12348
|
+
"filename": {
|
|
12461
12349
|
"type": "string",
|
|
12462
|
-
"description": "
|
|
12350
|
+
"description": "File name for the upload"
|
|
12463
12351
|
},
|
|
12464
|
-
"
|
|
12465
|
-
"type": "
|
|
12466
|
-
"description": "
|
|
12467
|
-
"properties": {
|
|
12468
|
-
"voiceId": {
|
|
12469
|
-
"type": "string",
|
|
12470
|
-
"description": ""
|
|
12471
|
-
},
|
|
12472
|
-
"modelId": {
|
|
12473
|
-
"type": "string",
|
|
12474
|
-
"description": ""
|
|
12475
|
-
},
|
|
12476
|
-
"outputFormat": {
|
|
12477
|
-
"type": "string",
|
|
12478
|
-
"description": ""
|
|
12479
|
-
},
|
|
12480
|
-
"voiceSettings": {
|
|
12481
|
-
"type": "ElevenLabsVoiceSettings",
|
|
12482
|
-
"description": ""
|
|
12483
|
-
},
|
|
12484
|
-
"disableCache": {
|
|
12485
|
-
"type": "boolean",
|
|
12486
|
-
"description": ""
|
|
12487
|
-
}
|
|
12488
|
-
}
|
|
12352
|
+
"opts": {
|
|
12353
|
+
"type": "{ subfolder?: string; type?: string; overwrite?: boolean }",
|
|
12354
|
+
"description": "Upload options (subfolder, type, overwrite)"
|
|
12489
12355
|
}
|
|
12490
12356
|
},
|
|
12491
12357
|
"required": [
|
|
12492
|
-
"
|
|
12358
|
+
"file",
|
|
12359
|
+
"filename"
|
|
12493
12360
|
],
|
|
12494
|
-
"returns": "Promise<
|
|
12495
|
-
"examples": [
|
|
12496
|
-
{
|
|
12497
|
-
"language": "ts",
|
|
12498
|
-
"code": "const audio = await el.synthesize('Hello world')\n// audio is a Buffer of mp3 data\n\nconst custom = await el.synthesize('Hello', {\n voiceId: '21m00Tcm4TlvDq8ikWAM',\n voiceSettings: { stability: 0.5, similarityBoost: 0.8 }\n})"
|
|
12499
|
-
}
|
|
12500
|
-
]
|
|
12361
|
+
"returns": "Promise<any>"
|
|
12501
12362
|
},
|
|
12502
|
-
"
|
|
12503
|
-
"description": "
|
|
12363
|
+
"viewImage": {
|
|
12364
|
+
"description": "Download a generated image from ComfyUI as a Buffer.",
|
|
12504
12365
|
"parameters": {
|
|
12505
|
-
"
|
|
12366
|
+
"filename": {
|
|
12506
12367
|
"type": "string",
|
|
12507
|
-
"description": "The
|
|
12368
|
+
"description": "The image filename"
|
|
12508
12369
|
},
|
|
12509
|
-
"
|
|
12510
|
-
"type": "
|
|
12511
|
-
"description": "
|
|
12370
|
+
"subfolder": {
|
|
12371
|
+
"type": "any",
|
|
12372
|
+
"description": "Subfolder within the output directory"
|
|
12373
|
+
},
|
|
12374
|
+
"type": {
|
|
12375
|
+
"type": "any",
|
|
12376
|
+
"description": "Image type ('output', 'input', 'temp')"
|
|
12377
|
+
}
|
|
12378
|
+
},
|
|
12379
|
+
"required": [
|
|
12380
|
+
"filename"
|
|
12381
|
+
],
|
|
12382
|
+
"returns": "Promise<Buffer>"
|
|
12383
|
+
},
|
|
12384
|
+
"connectWs": {
|
|
12385
|
+
"description": "Open a WebSocket connection to ComfyUI for real-time execution tracking. Events emitted: `execution_start`, `executing`, `progress`, `executed`, `execution_cached`, `execution_error`, `execution_complete`.",
|
|
12386
|
+
"parameters": {},
|
|
12387
|
+
"required": [],
|
|
12388
|
+
"returns": "Promise<void>"
|
|
12389
|
+
},
|
|
12390
|
+
"disconnectWs": {
|
|
12391
|
+
"description": "Close the WebSocket connection.",
|
|
12392
|
+
"parameters": {},
|
|
12393
|
+
"required": [],
|
|
12394
|
+
"returns": "void"
|
|
12395
|
+
},
|
|
12396
|
+
"toApiFormat": {
|
|
12397
|
+
"description": "Convert a UI-format workflow to the API format that /prompt expects. Requires a running ComfyUI instance to fetch `object_info` so we can map positional `widgets_values` to their named input fields. If the workflow is already in API format, it's returned as-is.",
|
|
12398
|
+
"parameters": {
|
|
12399
|
+
"workflow": {
|
|
12400
|
+
"type": "Record<string, any>",
|
|
12401
|
+
"description": "Parameter workflow"
|
|
12402
|
+
}
|
|
12403
|
+
},
|
|
12404
|
+
"required": [
|
|
12405
|
+
"workflow"
|
|
12406
|
+
],
|
|
12407
|
+
"returns": "Promise<Record<string, any>>"
|
|
12408
|
+
},
|
|
12409
|
+
"runWorkflow": {
|
|
12410
|
+
"description": "Run a ComfyUI workflow with optional runtime input overrides. Inputs can be provided in two forms: **Direct node mapping** (when no `inputMap` in options): ``` { '3': { seed: 42 }, '6': { text: 'a cat' } } ``` **Named inputs** (when `inputMap` is provided in options): ``` inputs: { positive_prompt: 'a cat', seed: 42 } options.inputMap: { positive_prompt: { nodeId: '6', field: 'text' }, seed: { nodeId: '3', field: 'seed' } } ```",
|
|
12411
|
+
"parameters": {
|
|
12412
|
+
"workflow": {
|
|
12413
|
+
"type": "Record<string, any>",
|
|
12414
|
+
"description": "Parameter workflow"
|
|
12415
|
+
},
|
|
12416
|
+
"inputs": {
|
|
12417
|
+
"type": "Record<string, any>",
|
|
12418
|
+
"description": "Parameter inputs"
|
|
12512
12419
|
},
|
|
12513
12420
|
"options": {
|
|
12514
|
-
"type": "
|
|
12515
|
-
"description": "
|
|
12421
|
+
"type": "WorkflowRunOptions",
|
|
12422
|
+
"description": "Parameter options",
|
|
12516
12423
|
"properties": {
|
|
12517
|
-
"
|
|
12518
|
-
"type": "
|
|
12519
|
-
"description": ""
|
|
12520
|
-
},
|
|
12521
|
-
"modelId": {
|
|
12522
|
-
"type": "string",
|
|
12523
|
-
"description": ""
|
|
12424
|
+
"poll": {
|
|
12425
|
+
"type": "boolean",
|
|
12426
|
+
"description": "Use polling instead of WebSocket for tracking execution"
|
|
12524
12427
|
},
|
|
12525
|
-
"
|
|
12526
|
-
"type": "
|
|
12527
|
-
"description": ""
|
|
12428
|
+
"pollInterval": {
|
|
12429
|
+
"type": "number",
|
|
12430
|
+
"description": "Polling interval in ms (default 1000)"
|
|
12528
12431
|
},
|
|
12529
|
-
"
|
|
12530
|
-
"type": "
|
|
12531
|
-
"description": ""
|
|
12432
|
+
"inputMap": {
|
|
12433
|
+
"type": "InputMapping",
|
|
12434
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }"
|
|
12532
12435
|
},
|
|
12533
|
-
"
|
|
12534
|
-
"type": "
|
|
12535
|
-
"description": ""
|
|
12436
|
+
"outputDir": {
|
|
12437
|
+
"type": "string",
|
|
12438
|
+
"description": "If provided, output images are downloaded to this directory"
|
|
12536
12439
|
}
|
|
12537
12440
|
}
|
|
12538
12441
|
}
|
|
12539
12442
|
},
|
|
12540
12443
|
"required": [
|
|
12541
|
-
"
|
|
12542
|
-
"outputPath"
|
|
12444
|
+
"workflow"
|
|
12543
12445
|
],
|
|
12544
|
-
"returns": "Promise<
|
|
12545
|
-
"examples": [
|
|
12546
|
-
{
|
|
12547
|
-
"language": "ts",
|
|
12548
|
-
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
12549
|
-
}
|
|
12550
|
-
]
|
|
12446
|
+
"returns": "Promise<WorkflowResult>"
|
|
12551
12447
|
}
|
|
12552
12448
|
},
|
|
12553
12449
|
"getters": {
|
|
12554
|
-
"
|
|
12555
|
-
"description": "The
|
|
12450
|
+
"clientId": {
|
|
12451
|
+
"description": "The unique client ID used for WebSocket session tracking.",
|
|
12452
|
+
"returns": "string"
|
|
12453
|
+
},
|
|
12454
|
+
"wsURL": {
|
|
12455
|
+
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
12556
12456
|
"returns": "string"
|
|
12557
12457
|
}
|
|
12558
12458
|
},
|
|
12559
12459
|
"events": {
|
|
12560
|
-
"
|
|
12561
|
-
"name": "
|
|
12562
|
-
"description": "Event emitted by
|
|
12460
|
+
"execution_start": {
|
|
12461
|
+
"name": "execution_start",
|
|
12462
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12563
12463
|
"arguments": {}
|
|
12564
12464
|
},
|
|
12565
|
-
"
|
|
12566
|
-
"name": "
|
|
12567
|
-
"description": "Event emitted by
|
|
12465
|
+
"execution_complete": {
|
|
12466
|
+
"name": "execution_complete",
|
|
12467
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12568
12468
|
"arguments": {}
|
|
12569
12469
|
},
|
|
12570
|
-
"
|
|
12571
|
-
"name": "
|
|
12572
|
-
"description": "Event emitted by
|
|
12470
|
+
"executing": {
|
|
12471
|
+
"name": "executing",
|
|
12472
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12473
|
+
"arguments": {}
|
|
12474
|
+
},
|
|
12475
|
+
"progress": {
|
|
12476
|
+
"name": "progress",
|
|
12477
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12478
|
+
"arguments": {}
|
|
12479
|
+
},
|
|
12480
|
+
"executed": {
|
|
12481
|
+
"name": "executed",
|
|
12482
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12483
|
+
"arguments": {}
|
|
12484
|
+
},
|
|
12485
|
+
"execution_cached": {
|
|
12486
|
+
"name": "execution_cached",
|
|
12487
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12488
|
+
"arguments": {}
|
|
12489
|
+
},
|
|
12490
|
+
"execution_error": {
|
|
12491
|
+
"name": "execution_error",
|
|
12492
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12573
12493
|
"arguments": {}
|
|
12574
12494
|
}
|
|
12575
12495
|
},
|
|
@@ -12579,65 +12499,48 @@ setBuildTimeData('clients.elevenlabs', {
|
|
|
12579
12499
|
"examples": [
|
|
12580
12500
|
{
|
|
12581
12501
|
"language": "ts",
|
|
12582
|
-
"code": "const
|
|
12502
|
+
"code": "const comfy = container.client('comfyui', { baseURL: 'http://localhost:8188' })\nconst result = await comfy.runWorkflow(workflow, {\n '6': { text: 'a beautiful sunset' }\n})\nconsole.log(result.images)"
|
|
12583
12503
|
}
|
|
12584
12504
|
],
|
|
12585
12505
|
"types": {
|
|
12586
|
-
"
|
|
12506
|
+
"WorkflowRunOptions": {
|
|
12587
12507
|
"description": "",
|
|
12588
12508
|
"properties": {
|
|
12589
|
-
"
|
|
12590
|
-
"type": "
|
|
12591
|
-
"description": "",
|
|
12592
|
-
"optional": true
|
|
12593
|
-
},
|
|
12594
|
-
"modelId": {
|
|
12595
|
-
"type": "string",
|
|
12596
|
-
"description": "",
|
|
12509
|
+
"poll": {
|
|
12510
|
+
"type": "boolean",
|
|
12511
|
+
"description": "Use polling instead of WebSocket for tracking execution",
|
|
12597
12512
|
"optional": true
|
|
12598
12513
|
},
|
|
12599
|
-
"
|
|
12600
|
-
"type": "
|
|
12601
|
-
"description": "",
|
|
12514
|
+
"pollInterval": {
|
|
12515
|
+
"type": "number",
|
|
12516
|
+
"description": "Polling interval in ms (default 1000)",
|
|
12602
12517
|
"optional": true
|
|
12603
12518
|
},
|
|
12604
|
-
"
|
|
12605
|
-
"type": "
|
|
12606
|
-
"description": "",
|
|
12519
|
+
"inputMap": {
|
|
12520
|
+
"type": "InputMapping",
|
|
12521
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }",
|
|
12607
12522
|
"optional": true
|
|
12608
12523
|
},
|
|
12609
|
-
"
|
|
12610
|
-
"type": "
|
|
12611
|
-
"description": "",
|
|
12524
|
+
"outputDir": {
|
|
12525
|
+
"type": "string",
|
|
12526
|
+
"description": "If provided, output images are downloaded to this directory",
|
|
12612
12527
|
"optional": true
|
|
12613
12528
|
}
|
|
12614
12529
|
}
|
|
12615
12530
|
},
|
|
12616
|
-
"
|
|
12531
|
+
"WorkflowResult": {
|
|
12617
12532
|
"description": "",
|
|
12618
12533
|
"properties": {
|
|
12619
|
-
"
|
|
12620
|
-
"type": "
|
|
12621
|
-
"description": ""
|
|
12622
|
-
"optional": true
|
|
12623
|
-
},
|
|
12624
|
-
"similarityBoost": {
|
|
12625
|
-
"type": "number",
|
|
12626
|
-
"description": "",
|
|
12627
|
-
"optional": true
|
|
12628
|
-
},
|
|
12629
|
-
"style": {
|
|
12630
|
-
"type": "number",
|
|
12631
|
-
"description": "",
|
|
12632
|
-
"optional": true
|
|
12534
|
+
"promptId": {
|
|
12535
|
+
"type": "string",
|
|
12536
|
+
"description": ""
|
|
12633
12537
|
},
|
|
12634
|
-
"
|
|
12635
|
-
"type": "
|
|
12636
|
-
"description": ""
|
|
12637
|
-
"optional": true
|
|
12538
|
+
"outputs": {
|
|
12539
|
+
"type": "Record<string, any>",
|
|
12540
|
+
"description": ""
|
|
12638
12541
|
},
|
|
12639
|
-
"
|
|
12640
|
-
"type": "
|
|
12542
|
+
"images": {
|
|
12543
|
+
"type": "Array<{ filename: string; subfolder: string; type: string; localPath?: string }>",
|
|
12641
12544
|
"description": "",
|
|
12642
12545
|
"optional": true
|
|
12643
12546
|
}
|
|
@@ -12646,244 +12549,194 @@ setBuildTimeData('clients.elevenlabs', {
|
|
|
12646
12549
|
}
|
|
12647
12550
|
});
|
|
12648
12551
|
|
|
12649
|
-
setBuildTimeData('clients.
|
|
12650
|
-
"id": "clients.
|
|
12651
|
-
"description": "
|
|
12652
|
-
"shortcut": "clients.
|
|
12653
|
-
"className": "
|
|
12552
|
+
setBuildTimeData('clients.elevenlabs', {
|
|
12553
|
+
"id": "clients.elevenlabs",
|
|
12554
|
+
"description": "ElevenLabs client — text-to-speech synthesis via the ElevenLabs REST API. Provides methods for listing voices, listing models, and generating speech audio. Audio is returned as a Buffer; use `say()` for a convenience method that writes to disk.",
|
|
12555
|
+
"shortcut": "clients.elevenlabs",
|
|
12556
|
+
"className": "ElevenLabsClient",
|
|
12654
12557
|
"methods": {
|
|
12655
|
-
"
|
|
12656
|
-
"description": "
|
|
12657
|
-
"parameters": {
|
|
12658
|
-
|
|
12659
|
-
|
|
12660
|
-
|
|
12661
|
-
|
|
12662
|
-
|
|
12663
|
-
|
|
12664
|
-
|
|
12665
|
-
|
|
12666
|
-
},
|
|
12667
|
-
"required": [
|
|
12668
|
-
"prompt"
|
|
12669
|
-
],
|
|
12670
|
-
"returns": "Promise<{ prompt_id: string; number: number }>",
|
|
12558
|
+
"beforeRequest": {
|
|
12559
|
+
"description": "Inject the xi-api-key header before each request.",
|
|
12560
|
+
"parameters": {},
|
|
12561
|
+
"required": [],
|
|
12562
|
+
"returns": "void"
|
|
12563
|
+
},
|
|
12564
|
+
"connect": {
|
|
12565
|
+
"description": "Validate the API key by listing available models.",
|
|
12566
|
+
"parameters": {},
|
|
12567
|
+
"required": [],
|
|
12568
|
+
"returns": "Promise<this>",
|
|
12671
12569
|
"examples": [
|
|
12672
12570
|
{
|
|
12673
12571
|
"language": "ts",
|
|
12674
|
-
"code": "
|
|
12572
|
+
"code": "await el.connect()"
|
|
12675
12573
|
}
|
|
12676
12574
|
]
|
|
12677
12575
|
},
|
|
12678
|
-
"
|
|
12679
|
-
"description": "
|
|
12680
|
-
"parameters": {},
|
|
12681
|
-
"required": [],
|
|
12682
|
-
"returns": "Promise<{ queue_running: any[]; queue_pending: any[] }>"
|
|
12683
|
-
},
|
|
12684
|
-
"getHistory": {
|
|
12685
|
-
"description": "Get execution history, optionally for a specific prompt.",
|
|
12576
|
+
"listVoices": {
|
|
12577
|
+
"description": "List available voices with optional search and filtering.",
|
|
12686
12578
|
"parameters": {
|
|
12687
|
-
"
|
|
12688
|
-
"type": "string",
|
|
12689
|
-
"description": "
|
|
12579
|
+
"options": {
|
|
12580
|
+
"type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
|
|
12581
|
+
"description": "Query parameters for filtering voices"
|
|
12690
12582
|
}
|
|
12691
12583
|
},
|
|
12692
12584
|
"required": [],
|
|
12693
|
-
"returns": "Promise<
|
|
12694
|
-
|
|
12695
|
-
|
|
12696
|
-
|
|
12697
|
-
|
|
12698
|
-
"required": [],
|
|
12699
|
-
"returns": "Promise<any>"
|
|
12700
|
-
},
|
|
12701
|
-
"getObjectInfo": {
|
|
12702
|
-
"description": "Get node type info with input/output schemas.",
|
|
12703
|
-
"parameters": {
|
|
12704
|
-
"nodeClass": {
|
|
12705
|
-
"type": "string",
|
|
12706
|
-
"description": "If provided, returns info for this node type only"
|
|
12585
|
+
"returns": "Promise<any>",
|
|
12586
|
+
"examples": [
|
|
12587
|
+
{
|
|
12588
|
+
"language": "ts",
|
|
12589
|
+
"code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
|
|
12707
12590
|
}
|
|
12708
|
-
|
|
12709
|
-
"required": [],
|
|
12710
|
-
"returns": "Promise<any>"
|
|
12711
|
-
},
|
|
12712
|
-
"interrupt": {
|
|
12713
|
-
"description": "Interrupt the currently executing prompt.",
|
|
12714
|
-
"parameters": {},
|
|
12715
|
-
"required": [],
|
|
12716
|
-
"returns": "Promise<void>"
|
|
12591
|
+
]
|
|
12717
12592
|
},
|
|
12718
|
-
"
|
|
12719
|
-
"description": "
|
|
12593
|
+
"getVoice": {
|
|
12594
|
+
"description": "Get details for a single voice.",
|
|
12720
12595
|
"parameters": {
|
|
12721
|
-
"
|
|
12596
|
+
"voiceId": {
|
|
12722
12597
|
"type": "string",
|
|
12723
|
-
"description": "
|
|
12598
|
+
"description": "The voice ID to look up"
|
|
12724
12599
|
}
|
|
12725
12600
|
},
|
|
12726
|
-
"required": [
|
|
12727
|
-
|
|
12601
|
+
"required": [
|
|
12602
|
+
"voiceId"
|
|
12603
|
+
],
|
|
12604
|
+
"returns": "Promise<any>",
|
|
12605
|
+
"examples": [
|
|
12606
|
+
{
|
|
12607
|
+
"language": "ts",
|
|
12608
|
+
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
12609
|
+
}
|
|
12610
|
+
]
|
|
12728
12611
|
},
|
|
12729
|
-
"
|
|
12730
|
-
"description": "List available
|
|
12612
|
+
"listModels": {
|
|
12613
|
+
"description": "List available TTS models.",
|
|
12731
12614
|
"parameters": {},
|
|
12732
12615
|
"required": [],
|
|
12733
|
-
"returns": "Promise<
|
|
12734
|
-
|
|
12735
|
-
|
|
12736
|
-
|
|
12737
|
-
|
|
12738
|
-
"file": {
|
|
12739
|
-
"type": "Buffer | Blob",
|
|
12740
|
-
"description": "The image data as Buffer or Blob"
|
|
12741
|
-
},
|
|
12742
|
-
"filename": {
|
|
12743
|
-
"type": "string",
|
|
12744
|
-
"description": "File name for the upload"
|
|
12745
|
-
},
|
|
12746
|
-
"opts": {
|
|
12747
|
-
"type": "{ subfolder?: string; type?: string; overwrite?: boolean }",
|
|
12748
|
-
"description": "Upload options (subfolder, type, overwrite)"
|
|
12616
|
+
"returns": "Promise<any[]>",
|
|
12617
|
+
"examples": [
|
|
12618
|
+
{
|
|
12619
|
+
"language": "ts",
|
|
12620
|
+
"code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
|
|
12749
12621
|
}
|
|
12750
|
-
|
|
12751
|
-
"required": [
|
|
12752
|
-
"file",
|
|
12753
|
-
"filename"
|
|
12754
|
-
],
|
|
12755
|
-
"returns": "Promise<any>"
|
|
12622
|
+
]
|
|
12756
12623
|
},
|
|
12757
|
-
"
|
|
12758
|
-
"description": "
|
|
12624
|
+
"synthesize": {
|
|
12625
|
+
"description": "Synthesize speech from text, returning audio as a Buffer.",
|
|
12759
12626
|
"parameters": {
|
|
12760
|
-
"
|
|
12627
|
+
"text": {
|
|
12761
12628
|
"type": "string",
|
|
12762
|
-
"description": "The
|
|
12763
|
-
},
|
|
12764
|
-
"subfolder": {
|
|
12765
|
-
"type": "any",
|
|
12766
|
-
"description": "Subfolder within the output directory"
|
|
12629
|
+
"description": "The text to convert to speech"
|
|
12767
12630
|
},
|
|
12768
|
-
"
|
|
12769
|
-
"type": "
|
|
12770
|
-
"description": "
|
|
12631
|
+
"options": {
|
|
12632
|
+
"type": "SynthesizeOptions",
|
|
12633
|
+
"description": "Voice, model, format, and voice settings overrides",
|
|
12634
|
+
"properties": {
|
|
12635
|
+
"voiceId": {
|
|
12636
|
+
"type": "string",
|
|
12637
|
+
"description": ""
|
|
12638
|
+
},
|
|
12639
|
+
"modelId": {
|
|
12640
|
+
"type": "string",
|
|
12641
|
+
"description": ""
|
|
12642
|
+
},
|
|
12643
|
+
"outputFormat": {
|
|
12644
|
+
"type": "string",
|
|
12645
|
+
"description": ""
|
|
12646
|
+
},
|
|
12647
|
+
"voiceSettings": {
|
|
12648
|
+
"type": "ElevenLabsVoiceSettings",
|
|
12649
|
+
"description": ""
|
|
12650
|
+
},
|
|
12651
|
+
"disableCache": {
|
|
12652
|
+
"type": "boolean",
|
|
12653
|
+
"description": ""
|
|
12654
|
+
}
|
|
12655
|
+
}
|
|
12771
12656
|
}
|
|
12772
12657
|
},
|
|
12773
12658
|
"required": [
|
|
12774
|
-
"
|
|
12659
|
+
"text"
|
|
12775
12660
|
],
|
|
12776
|
-
"returns": "Promise<Buffer>"
|
|
12777
|
-
|
|
12778
|
-
|
|
12779
|
-
|
|
12780
|
-
|
|
12781
|
-
"required": [],
|
|
12782
|
-
"returns": "Promise<void>"
|
|
12783
|
-
},
|
|
12784
|
-
"disconnectWs": {
|
|
12785
|
-
"description": "Close the WebSocket connection.",
|
|
12786
|
-
"parameters": {},
|
|
12787
|
-
"required": [],
|
|
12788
|
-
"returns": "void"
|
|
12789
|
-
},
|
|
12790
|
-
"toApiFormat": {
|
|
12791
|
-
"description": "Convert a UI-format workflow to the API format that /prompt expects. Requires a running ComfyUI instance to fetch `object_info` so we can map positional `widgets_values` to their named input fields. If the workflow is already in API format, it's returned as-is.",
|
|
12792
|
-
"parameters": {
|
|
12793
|
-
"workflow": {
|
|
12794
|
-
"type": "Record<string, any>",
|
|
12795
|
-
"description": "Parameter workflow"
|
|
12661
|
+
"returns": "Promise<Buffer>",
|
|
12662
|
+
"examples": [
|
|
12663
|
+
{
|
|
12664
|
+
"language": "ts",
|
|
12665
|
+
"code": "const audio = await el.synthesize('Hello world')\n// audio is a Buffer of mp3 data\n\nconst custom = await el.synthesize('Hello', {\n voiceId: '21m00Tcm4TlvDq8ikWAM',\n voiceSettings: { stability: 0.5, similarityBoost: 0.8 }\n})"
|
|
12796
12666
|
}
|
|
12797
|
-
|
|
12798
|
-
"required": [
|
|
12799
|
-
"workflow"
|
|
12800
|
-
],
|
|
12801
|
-
"returns": "Promise<Record<string, any>>"
|
|
12667
|
+
]
|
|
12802
12668
|
},
|
|
12803
|
-
"
|
|
12804
|
-
"description": "
|
|
12669
|
+
"say": {
|
|
12670
|
+
"description": "Synthesize speech and write the audio to a file.",
|
|
12805
12671
|
"parameters": {
|
|
12806
|
-
"
|
|
12807
|
-
"type": "
|
|
12808
|
-
"description": "
|
|
12672
|
+
"text": {
|
|
12673
|
+
"type": "string",
|
|
12674
|
+
"description": "The text to convert to speech"
|
|
12809
12675
|
},
|
|
12810
|
-
"
|
|
12811
|
-
"type": "
|
|
12812
|
-
"description": "
|
|
12676
|
+
"outputPath": {
|
|
12677
|
+
"type": "string",
|
|
12678
|
+
"description": "File path to write the audio to"
|
|
12813
12679
|
},
|
|
12814
12680
|
"options": {
|
|
12815
|
-
"type": "
|
|
12816
|
-
"description": "
|
|
12681
|
+
"type": "SynthesizeOptions",
|
|
12682
|
+
"description": "Voice, model, format, and voice settings overrides",
|
|
12817
12683
|
"properties": {
|
|
12818
|
-
"
|
|
12819
|
-
"type": "
|
|
12820
|
-
"description": "
|
|
12821
|
-
},
|
|
12822
|
-
"pollInterval": {
|
|
12823
|
-
"type": "number",
|
|
12824
|
-
"description": "Polling interval in ms (default 1000)"
|
|
12684
|
+
"voiceId": {
|
|
12685
|
+
"type": "string",
|
|
12686
|
+
"description": ""
|
|
12825
12687
|
},
|
|
12826
|
-
"
|
|
12827
|
-
"type": "
|
|
12828
|
-
"description": "
|
|
12688
|
+
"modelId": {
|
|
12689
|
+
"type": "string",
|
|
12690
|
+
"description": ""
|
|
12829
12691
|
},
|
|
12830
|
-
"
|
|
12692
|
+
"outputFormat": {
|
|
12831
12693
|
"type": "string",
|
|
12832
|
-
"description": "
|
|
12694
|
+
"description": ""
|
|
12695
|
+
},
|
|
12696
|
+
"voiceSettings": {
|
|
12697
|
+
"type": "ElevenLabsVoiceSettings",
|
|
12698
|
+
"description": ""
|
|
12699
|
+
},
|
|
12700
|
+
"disableCache": {
|
|
12701
|
+
"type": "boolean",
|
|
12702
|
+
"description": ""
|
|
12833
12703
|
}
|
|
12834
12704
|
}
|
|
12835
12705
|
}
|
|
12836
12706
|
},
|
|
12837
12707
|
"required": [
|
|
12838
|
-
"
|
|
12708
|
+
"text",
|
|
12709
|
+
"outputPath"
|
|
12839
12710
|
],
|
|
12840
|
-
"returns": "Promise<
|
|
12711
|
+
"returns": "Promise<string>",
|
|
12712
|
+
"examples": [
|
|
12713
|
+
{
|
|
12714
|
+
"language": "ts",
|
|
12715
|
+
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
12716
|
+
}
|
|
12717
|
+
]
|
|
12841
12718
|
}
|
|
12842
12719
|
},
|
|
12843
12720
|
"getters": {
|
|
12844
|
-
"
|
|
12845
|
-
"description": "The
|
|
12846
|
-
"returns": "string"
|
|
12847
|
-
},
|
|
12848
|
-
"wsURL": {
|
|
12849
|
-
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
12721
|
+
"apiKey": {
|
|
12722
|
+
"description": "The resolved API key from options or environment.",
|
|
12850
12723
|
"returns": "string"
|
|
12851
12724
|
}
|
|
12852
12725
|
},
|
|
12853
12726
|
"events": {
|
|
12854
|
-
"
|
|
12855
|
-
"name": "
|
|
12856
|
-
"description": "Event emitted by
|
|
12727
|
+
"failure": {
|
|
12728
|
+
"name": "failure",
|
|
12729
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
12857
12730
|
"arguments": {}
|
|
12858
12731
|
},
|
|
12859
|
-
"
|
|
12860
|
-
"name": "
|
|
12861
|
-
"description": "Event emitted by
|
|
12732
|
+
"voices": {
|
|
12733
|
+
"name": "voices",
|
|
12734
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
12862
12735
|
"arguments": {}
|
|
12863
12736
|
},
|
|
12864
|
-
"
|
|
12865
|
-
"name": "
|
|
12866
|
-
"description": "Event emitted by
|
|
12867
|
-
"arguments": {}
|
|
12868
|
-
},
|
|
12869
|
-
"progress": {
|
|
12870
|
-
"name": "progress",
|
|
12871
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12872
|
-
"arguments": {}
|
|
12873
|
-
},
|
|
12874
|
-
"executed": {
|
|
12875
|
-
"name": "executed",
|
|
12876
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12877
|
-
"arguments": {}
|
|
12878
|
-
},
|
|
12879
|
-
"execution_cached": {
|
|
12880
|
-
"name": "execution_cached",
|
|
12881
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12882
|
-
"arguments": {}
|
|
12883
|
-
},
|
|
12884
|
-
"execution_error": {
|
|
12885
|
-
"name": "execution_error",
|
|
12886
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12737
|
+
"speech": {
|
|
12738
|
+
"name": "speech",
|
|
12739
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
12887
12740
|
"arguments": {}
|
|
12888
12741
|
}
|
|
12889
12742
|
},
|
|
@@ -12893,48 +12746,65 @@ setBuildTimeData('clients.comfyui', {
|
|
|
12893
12746
|
"examples": [
|
|
12894
12747
|
{
|
|
12895
12748
|
"language": "ts",
|
|
12896
|
-
"code": "const
|
|
12749
|
+
"code": "const el = container.client('elevenlabs')\nawait el.connect()\nconst voices = await el.listVoices()\nconst audio = await el.synthesize('Hello world')\n// audio is a Buffer of mp3 data"
|
|
12897
12750
|
}
|
|
12898
12751
|
],
|
|
12899
12752
|
"types": {
|
|
12900
|
-
"
|
|
12753
|
+
"SynthesizeOptions": {
|
|
12901
12754
|
"description": "",
|
|
12902
12755
|
"properties": {
|
|
12903
|
-
"
|
|
12904
|
-
"type": "
|
|
12905
|
-
"description": "
|
|
12756
|
+
"voiceId": {
|
|
12757
|
+
"type": "string",
|
|
12758
|
+
"description": "",
|
|
12906
12759
|
"optional": true
|
|
12907
12760
|
},
|
|
12908
|
-
"
|
|
12909
|
-
"type": "
|
|
12910
|
-
"description": "
|
|
12761
|
+
"modelId": {
|
|
12762
|
+
"type": "string",
|
|
12763
|
+
"description": "",
|
|
12911
12764
|
"optional": true
|
|
12912
12765
|
},
|
|
12913
|
-
"
|
|
12914
|
-
"type": "
|
|
12915
|
-
"description": "
|
|
12766
|
+
"outputFormat": {
|
|
12767
|
+
"type": "string",
|
|
12768
|
+
"description": "",
|
|
12916
12769
|
"optional": true
|
|
12917
12770
|
},
|
|
12918
|
-
"
|
|
12919
|
-
"type": "
|
|
12920
|
-
"description": "
|
|
12771
|
+
"voiceSettings": {
|
|
12772
|
+
"type": "ElevenLabsVoiceSettings",
|
|
12773
|
+
"description": "",
|
|
12774
|
+
"optional": true
|
|
12775
|
+
},
|
|
12776
|
+
"disableCache": {
|
|
12777
|
+
"type": "boolean",
|
|
12778
|
+
"description": "",
|
|
12921
12779
|
"optional": true
|
|
12922
12780
|
}
|
|
12923
12781
|
}
|
|
12924
12782
|
},
|
|
12925
|
-
"
|
|
12783
|
+
"ElevenLabsVoiceSettings": {
|
|
12926
12784
|
"description": "",
|
|
12927
12785
|
"properties": {
|
|
12928
|
-
"
|
|
12929
|
-
"type": "
|
|
12930
|
-
"description": ""
|
|
12786
|
+
"stability": {
|
|
12787
|
+
"type": "number",
|
|
12788
|
+
"description": "",
|
|
12789
|
+
"optional": true
|
|
12931
12790
|
},
|
|
12932
|
-
"
|
|
12933
|
-
"type": "
|
|
12934
|
-
"description": ""
|
|
12791
|
+
"similarityBoost": {
|
|
12792
|
+
"type": "number",
|
|
12793
|
+
"description": "",
|
|
12794
|
+
"optional": true
|
|
12935
12795
|
},
|
|
12936
|
-
"
|
|
12937
|
-
"type": "
|
|
12796
|
+
"style": {
|
|
12797
|
+
"type": "number",
|
|
12798
|
+
"description": "",
|
|
12799
|
+
"optional": true
|
|
12800
|
+
},
|
|
12801
|
+
"speed": {
|
|
12802
|
+
"type": "number",
|
|
12803
|
+
"description": "",
|
|
12804
|
+
"optional": true
|
|
12805
|
+
},
|
|
12806
|
+
"useSpeakerBoost": {
|
|
12807
|
+
"type": "boolean",
|
|
12938
12808
|
"description": "",
|
|
12939
12809
|
"optional": true
|
|
12940
12810
|
}
|
|
@@ -22699,135 +22569,6 @@ export const introspectionData = [
|
|
|
22699
22569
|
}
|
|
22700
22570
|
}
|
|
22701
22571
|
},
|
|
22702
|
-
{
|
|
22703
|
-
"id": "portExposer",
|
|
22704
|
-
"description": "Port Exposer Feature Exposes local HTTP services via ngrok with SSL-enabled public URLs. Perfect for development, testing, and sharing local services securely. Features: - SSL-enabled public URLs for local services - Custom subdomains and domains (with paid plans) - Authentication options (basic auth, OAuth) - Regional endpoint selection - Connection state management",
|
|
22705
|
-
"shortcut": "portExposer",
|
|
22706
|
-
"className": "PortExposer",
|
|
22707
|
-
"methods": {
|
|
22708
|
-
"expose": {
|
|
22709
|
-
"description": "Expose the local port via ngrok. Creates an ngrok tunnel to the specified local port and returns the SSL-enabled public URL. Emits `exposed` on success or `error` on failure.",
|
|
22710
|
-
"parameters": {
|
|
22711
|
-
"port": {
|
|
22712
|
-
"type": "number",
|
|
22713
|
-
"description": "Optional port override; falls back to `options.port`"
|
|
22714
|
-
}
|
|
22715
|
-
},
|
|
22716
|
-
"required": [],
|
|
22717
|
-
"returns": "Promise<string>",
|
|
22718
|
-
"examples": [
|
|
22719
|
-
{
|
|
22720
|
-
"language": "ts",
|
|
22721
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nconst url = await exposer.expose()\nconsole.log(`Public URL: ${url}`)\n\n// Override port at call time\nconst url2 = await exposer.expose(8080)"
|
|
22722
|
-
}
|
|
22723
|
-
]
|
|
22724
|
-
},
|
|
22725
|
-
"close": {
|
|
22726
|
-
"description": "Stop exposing the port and close the ngrok tunnel. Tears down the ngrok listener, resets connection state, and emits `closed`. Safe to call when no tunnel is active (no-op).",
|
|
22727
|
-
"parameters": {},
|
|
22728
|
-
"required": [],
|
|
22729
|
-
"returns": "Promise<void>",
|
|
22730
|
-
"examples": [
|
|
22731
|
-
{
|
|
22732
|
-
"language": "ts",
|
|
22733
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nawait exposer.expose()\n// ... later\nawait exposer.close()\nconsole.log(exposer.isConnected()) // false"
|
|
22734
|
-
}
|
|
22735
|
-
]
|
|
22736
|
-
},
|
|
22737
|
-
"getPublicUrl": {
|
|
22738
|
-
"description": "Get the current public URL if connected. Returns the live URL from the ngrok listener, or `undefined` if no tunnel is active.",
|
|
22739
|
-
"parameters": {},
|
|
22740
|
-
"required": [],
|
|
22741
|
-
"returns": "string | undefined",
|
|
22742
|
-
"examples": [
|
|
22743
|
-
{
|
|
22744
|
-
"language": "ts",
|
|
22745
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nawait exposer.expose()\nconsole.log(exposer.getPublicUrl()) // 'https://abc123.ngrok.io'"
|
|
22746
|
-
}
|
|
22747
|
-
]
|
|
22748
|
-
},
|
|
22749
|
-
"isConnected": {
|
|
22750
|
-
"description": "Check if the ngrok tunnel is currently connected.",
|
|
22751
|
-
"parameters": {},
|
|
22752
|
-
"required": [],
|
|
22753
|
-
"returns": "boolean",
|
|
22754
|
-
"examples": [
|
|
22755
|
-
{
|
|
22756
|
-
"language": "ts",
|
|
22757
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nconsole.log(exposer.isConnected()) // false\nawait exposer.expose()\nconsole.log(exposer.isConnected()) // true"
|
|
22758
|
-
}
|
|
22759
|
-
]
|
|
22760
|
-
},
|
|
22761
|
-
"getConnectionInfo": {
|
|
22762
|
-
"description": "Get a snapshot of the current connection information. Returns an object with the tunnel's connected status, public URL, local port, connection timestamp, and session metadata.",
|
|
22763
|
-
"parameters": {},
|
|
22764
|
-
"required": [],
|
|
22765
|
-
"returns": "void",
|
|
22766
|
-
"examples": [
|
|
22767
|
-
{
|
|
22768
|
-
"language": "ts",
|
|
22769
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nawait exposer.expose()\nconst info = exposer.getConnectionInfo()\nconsole.log(info.publicUrl, info.localPort, info.connectedAt)"
|
|
22770
|
-
}
|
|
22771
|
-
]
|
|
22772
|
-
},
|
|
22773
|
-
"reconnect": {
|
|
22774
|
-
"description": "Close the existing tunnel and re-expose with optionally updated options. Calls `close()` first, merges any new options, then calls `expose()`.",
|
|
22775
|
-
"parameters": {
|
|
22776
|
-
"newOptions": {
|
|
22777
|
-
"type": "Partial<PortExposerOptions>",
|
|
22778
|
-
"description": "Optional partial options to merge before reconnecting"
|
|
22779
|
-
}
|
|
22780
|
-
},
|
|
22781
|
-
"required": [],
|
|
22782
|
-
"returns": "Promise<string>",
|
|
22783
|
-
"examples": [
|
|
22784
|
-
{
|
|
22785
|
-
"language": "ts",
|
|
22786
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nawait exposer.expose()\n// Switch to a different port\nconst newUrl = await exposer.reconnect({ port: 8080 })"
|
|
22787
|
-
}
|
|
22788
|
-
]
|
|
22789
|
-
},
|
|
22790
|
-
"disable": {
|
|
22791
|
-
"description": "Disable the feature, ensuring the ngrok tunnel is closed first. Overrides the base `disable()` to guarantee that the tunnel is torn down before the feature is marked as disabled.",
|
|
22792
|
-
"parameters": {},
|
|
22793
|
-
"required": [],
|
|
22794
|
-
"returns": "Promise<this>",
|
|
22795
|
-
"examples": [
|
|
22796
|
-
{
|
|
22797
|
-
"language": "ts",
|
|
22798
|
-
"code": "const exposer = container.feature('portExposer', { port: 3000 })\nawait exposer.expose()\nawait exposer.disable()"
|
|
22799
|
-
}
|
|
22800
|
-
]
|
|
22801
|
-
}
|
|
22802
|
-
},
|
|
22803
|
-
"getters": {},
|
|
22804
|
-
"events": {
|
|
22805
|
-
"exposed": {
|
|
22806
|
-
"name": "exposed",
|
|
22807
|
-
"description": "Event emitted by PortExposer",
|
|
22808
|
-
"arguments": {}
|
|
22809
|
-
},
|
|
22810
|
-
"error": {
|
|
22811
|
-
"name": "error",
|
|
22812
|
-
"description": "Event emitted by PortExposer",
|
|
22813
|
-
"arguments": {}
|
|
22814
|
-
},
|
|
22815
|
-
"closed": {
|
|
22816
|
-
"name": "closed",
|
|
22817
|
-
"description": "Event emitted by PortExposer",
|
|
22818
|
-
"arguments": {}
|
|
22819
|
-
}
|
|
22820
|
-
},
|
|
22821
|
-
"state": {},
|
|
22822
|
-
"options": {},
|
|
22823
|
-
"envVars": [],
|
|
22824
|
-
"examples": [
|
|
22825
|
-
{
|
|
22826
|
-
"language": "ts",
|
|
22827
|
-
"code": "// Basic usage\nconst exposer = container.feature('portExposer', { port: 3000 })\nconst url = await exposer.expose()\nconsole.log(`Service available at: ${url}`)\n\n// With custom subdomain\nconst exposer = container.feature('portExposer', {\n port: 8080,\n subdomain: 'my-app',\n authToken: 'your-ngrok-token'\n})"
|
|
22828
|
-
}
|
|
22829
|
-
]
|
|
22830
|
-
},
|
|
22831
22572
|
{
|
|
22832
22573
|
"id": "features.googleSheets",
|
|
22833
22574
|
"description": "Google Sheets feature for reading spreadsheet data as JSON, CSV, or raw arrays. Depends on the googleAuth feature for authentication. Creates a Sheets v4 API client lazily and provides convenient methods for reading tabular data.",
|
|
@@ -26177,298 +25918,35 @@ export const introspectionData = [
|
|
|
26177
25918
|
},
|
|
26178
25919
|
"disconnect": {
|
|
26179
25920
|
"description": "Disconnect by signing out and removing all realtime channels.",
|
|
26180
|
-
"parameters": {},
|
|
26181
|
-
"required": [],
|
|
26182
|
-
"returns": "void"
|
|
26183
|
-
}
|
|
26184
|
-
},
|
|
26185
|
-
"getters": {
|
|
26186
|
-
"sdk": {
|
|
26187
|
-
"description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
|
|
26188
|
-
"returns": "SupabaseSDKClient<any, any>"
|
|
26189
|
-
},
|
|
26190
|
-
"storage": {
|
|
26191
|
-
"description": "Returns the Supabase Storage client for managing buckets and files.",
|
|
26192
|
-
"returns": "any"
|
|
26193
|
-
},
|
|
26194
|
-
"functions": {
|
|
26195
|
-
"description": "Returns the Supabase Functions client.",
|
|
26196
|
-
"returns": "any"
|
|
26197
|
-
}
|
|
26198
|
-
},
|
|
26199
|
-
"events": {},
|
|
26200
|
-
"state": {},
|
|
26201
|
-
"options": {},
|
|
26202
|
-
"envVars": [],
|
|
26203
|
-
"examples": [
|
|
26204
|
-
{
|
|
26205
|
-
"language": "ts",
|
|
26206
|
-
"code": "const supabase = container.client('supabase', {\n supabaseUrl: 'https://xyz.supabase.co',\n supabaseKey: 'your-anon-key',\n})\n\n// Query data\nconst { data } = await supabase.from('users').select('*')\n\n// Auth\nawait supabase.signInWithPassword('user@example.com', 'password')\n\n// Realtime\nsupabase.subscribe('changes', 'users', (payload) => {\n console.log('Change:', payload)\n})"
|
|
26207
|
-
}
|
|
26208
|
-
]
|
|
26209
|
-
},
|
|
26210
|
-
{
|
|
26211
|
-
"id": "clients.elevenlabs",
|
|
26212
|
-
"description": "ElevenLabs client — text-to-speech synthesis via the ElevenLabs REST API. Provides methods for listing voices, listing models, and generating speech audio. Audio is returned as a Buffer; use `say()` for a convenience method that writes to disk.",
|
|
26213
|
-
"shortcut": "clients.elevenlabs",
|
|
26214
|
-
"className": "ElevenLabsClient",
|
|
26215
|
-
"methods": {
|
|
26216
|
-
"beforeRequest": {
|
|
26217
|
-
"description": "Inject the xi-api-key header before each request.",
|
|
26218
|
-
"parameters": {},
|
|
26219
|
-
"required": [],
|
|
26220
|
-
"returns": "void"
|
|
26221
|
-
},
|
|
26222
|
-
"connect": {
|
|
26223
|
-
"description": "Validate the API key by listing available models.",
|
|
26224
|
-
"parameters": {},
|
|
26225
|
-
"required": [],
|
|
26226
|
-
"returns": "Promise<this>",
|
|
26227
|
-
"examples": [
|
|
26228
|
-
{
|
|
26229
|
-
"language": "ts",
|
|
26230
|
-
"code": "await el.connect()"
|
|
26231
|
-
}
|
|
26232
|
-
]
|
|
26233
|
-
},
|
|
26234
|
-
"listVoices": {
|
|
26235
|
-
"description": "List available voices with optional search and filtering.",
|
|
26236
|
-
"parameters": {
|
|
26237
|
-
"options": {
|
|
26238
|
-
"type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
|
|
26239
|
-
"description": "Query parameters for filtering voices"
|
|
26240
|
-
}
|
|
26241
|
-
},
|
|
26242
|
-
"required": [],
|
|
26243
|
-
"returns": "Promise<any>",
|
|
26244
|
-
"examples": [
|
|
26245
|
-
{
|
|
26246
|
-
"language": "ts",
|
|
26247
|
-
"code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
|
|
26248
|
-
}
|
|
26249
|
-
]
|
|
26250
|
-
},
|
|
26251
|
-
"getVoice": {
|
|
26252
|
-
"description": "Get details for a single voice.",
|
|
26253
|
-
"parameters": {
|
|
26254
|
-
"voiceId": {
|
|
26255
|
-
"type": "string",
|
|
26256
|
-
"description": "The voice ID to look up"
|
|
26257
|
-
}
|
|
26258
|
-
},
|
|
26259
|
-
"required": [
|
|
26260
|
-
"voiceId"
|
|
26261
|
-
],
|
|
26262
|
-
"returns": "Promise<any>",
|
|
26263
|
-
"examples": [
|
|
26264
|
-
{
|
|
26265
|
-
"language": "ts",
|
|
26266
|
-
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
26267
|
-
}
|
|
26268
|
-
]
|
|
26269
|
-
},
|
|
26270
|
-
"listModels": {
|
|
26271
|
-
"description": "List available TTS models.",
|
|
26272
|
-
"parameters": {},
|
|
26273
|
-
"required": [],
|
|
26274
|
-
"returns": "Promise<any[]>",
|
|
26275
|
-
"examples": [
|
|
26276
|
-
{
|
|
26277
|
-
"language": "ts",
|
|
26278
|
-
"code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
|
|
26279
|
-
}
|
|
26280
|
-
]
|
|
26281
|
-
},
|
|
26282
|
-
"synthesize": {
|
|
26283
|
-
"description": "Synthesize speech from text, returning audio as a Buffer.",
|
|
26284
|
-
"parameters": {
|
|
26285
|
-
"text": {
|
|
26286
|
-
"type": "string",
|
|
26287
|
-
"description": "The text to convert to speech"
|
|
26288
|
-
},
|
|
26289
|
-
"options": {
|
|
26290
|
-
"type": "SynthesizeOptions",
|
|
26291
|
-
"description": "Voice, model, format, and voice settings overrides",
|
|
26292
|
-
"properties": {
|
|
26293
|
-
"voiceId": {
|
|
26294
|
-
"type": "string",
|
|
26295
|
-
"description": ""
|
|
26296
|
-
},
|
|
26297
|
-
"modelId": {
|
|
26298
|
-
"type": "string",
|
|
26299
|
-
"description": ""
|
|
26300
|
-
},
|
|
26301
|
-
"outputFormat": {
|
|
26302
|
-
"type": "string",
|
|
26303
|
-
"description": ""
|
|
26304
|
-
},
|
|
26305
|
-
"voiceSettings": {
|
|
26306
|
-
"type": "ElevenLabsVoiceSettings",
|
|
26307
|
-
"description": ""
|
|
26308
|
-
},
|
|
26309
|
-
"disableCache": {
|
|
26310
|
-
"type": "boolean",
|
|
26311
|
-
"description": ""
|
|
26312
|
-
}
|
|
26313
|
-
}
|
|
26314
|
-
}
|
|
26315
|
-
},
|
|
26316
|
-
"required": [
|
|
26317
|
-
"text"
|
|
26318
|
-
],
|
|
26319
|
-
"returns": "Promise<Buffer>",
|
|
26320
|
-
"examples": [
|
|
26321
|
-
{
|
|
26322
|
-
"language": "ts",
|
|
26323
|
-
"code": "const audio = await el.synthesize('Hello world')\n// audio is a Buffer of mp3 data\n\nconst custom = await el.synthesize('Hello', {\n voiceId: '21m00Tcm4TlvDq8ikWAM',\n voiceSettings: { stability: 0.5, similarityBoost: 0.8 }\n})"
|
|
26324
|
-
}
|
|
26325
|
-
]
|
|
26326
|
-
},
|
|
26327
|
-
"say": {
|
|
26328
|
-
"description": "Synthesize speech and write the audio to a file.",
|
|
26329
|
-
"parameters": {
|
|
26330
|
-
"text": {
|
|
26331
|
-
"type": "string",
|
|
26332
|
-
"description": "The text to convert to speech"
|
|
26333
|
-
},
|
|
26334
|
-
"outputPath": {
|
|
26335
|
-
"type": "string",
|
|
26336
|
-
"description": "File path to write the audio to"
|
|
26337
|
-
},
|
|
26338
|
-
"options": {
|
|
26339
|
-
"type": "SynthesizeOptions",
|
|
26340
|
-
"description": "Voice, model, format, and voice settings overrides",
|
|
26341
|
-
"properties": {
|
|
26342
|
-
"voiceId": {
|
|
26343
|
-
"type": "string",
|
|
26344
|
-
"description": ""
|
|
26345
|
-
},
|
|
26346
|
-
"modelId": {
|
|
26347
|
-
"type": "string",
|
|
26348
|
-
"description": ""
|
|
26349
|
-
},
|
|
26350
|
-
"outputFormat": {
|
|
26351
|
-
"type": "string",
|
|
26352
|
-
"description": ""
|
|
26353
|
-
},
|
|
26354
|
-
"voiceSettings": {
|
|
26355
|
-
"type": "ElevenLabsVoiceSettings",
|
|
26356
|
-
"description": ""
|
|
26357
|
-
},
|
|
26358
|
-
"disableCache": {
|
|
26359
|
-
"type": "boolean",
|
|
26360
|
-
"description": ""
|
|
26361
|
-
}
|
|
26362
|
-
}
|
|
26363
|
-
}
|
|
26364
|
-
},
|
|
26365
|
-
"required": [
|
|
26366
|
-
"text",
|
|
26367
|
-
"outputPath"
|
|
26368
|
-
],
|
|
26369
|
-
"returns": "Promise<string>",
|
|
26370
|
-
"examples": [
|
|
26371
|
-
{
|
|
26372
|
-
"language": "ts",
|
|
26373
|
-
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
26374
|
-
}
|
|
26375
|
-
]
|
|
26376
|
-
}
|
|
26377
|
-
},
|
|
26378
|
-
"getters": {
|
|
26379
|
-
"apiKey": {
|
|
26380
|
-
"description": "The resolved API key from options or environment.",
|
|
26381
|
-
"returns": "string"
|
|
26382
|
-
}
|
|
26383
|
-
},
|
|
26384
|
-
"events": {
|
|
26385
|
-
"failure": {
|
|
26386
|
-
"name": "failure",
|
|
26387
|
-
"description": "Event emitted by ElevenLabsClient",
|
|
26388
|
-
"arguments": {}
|
|
26389
|
-
},
|
|
26390
|
-
"voices": {
|
|
26391
|
-
"name": "voices",
|
|
26392
|
-
"description": "Event emitted by ElevenLabsClient",
|
|
26393
|
-
"arguments": {}
|
|
26394
|
-
},
|
|
26395
|
-
"speech": {
|
|
26396
|
-
"name": "speech",
|
|
26397
|
-
"description": "Event emitted by ElevenLabsClient",
|
|
26398
|
-
"arguments": {}
|
|
26399
|
-
}
|
|
26400
|
-
},
|
|
26401
|
-
"state": {},
|
|
26402
|
-
"options": {},
|
|
26403
|
-
"envVars": [],
|
|
26404
|
-
"examples": [
|
|
26405
|
-
{
|
|
26406
|
-
"language": "ts",
|
|
26407
|
-
"code": "const el = container.client('elevenlabs')\nawait el.connect()\nconst voices = await el.listVoices()\nconst audio = await el.synthesize('Hello world')\n// audio is a Buffer of mp3 data"
|
|
26408
|
-
}
|
|
26409
|
-
],
|
|
26410
|
-
"types": {
|
|
26411
|
-
"SynthesizeOptions": {
|
|
26412
|
-
"description": "",
|
|
26413
|
-
"properties": {
|
|
26414
|
-
"voiceId": {
|
|
26415
|
-
"type": "string",
|
|
26416
|
-
"description": "",
|
|
26417
|
-
"optional": true
|
|
26418
|
-
},
|
|
26419
|
-
"modelId": {
|
|
26420
|
-
"type": "string",
|
|
26421
|
-
"description": "",
|
|
26422
|
-
"optional": true
|
|
26423
|
-
},
|
|
26424
|
-
"outputFormat": {
|
|
26425
|
-
"type": "string",
|
|
26426
|
-
"description": "",
|
|
26427
|
-
"optional": true
|
|
26428
|
-
},
|
|
26429
|
-
"voiceSettings": {
|
|
26430
|
-
"type": "ElevenLabsVoiceSettings",
|
|
26431
|
-
"description": "",
|
|
26432
|
-
"optional": true
|
|
26433
|
-
},
|
|
26434
|
-
"disableCache": {
|
|
26435
|
-
"type": "boolean",
|
|
26436
|
-
"description": "",
|
|
26437
|
-
"optional": true
|
|
26438
|
-
}
|
|
26439
|
-
}
|
|
26440
|
-
},
|
|
26441
|
-
"ElevenLabsVoiceSettings": {
|
|
26442
|
-
"description": "",
|
|
26443
|
-
"properties": {
|
|
26444
|
-
"stability": {
|
|
26445
|
-
"type": "number",
|
|
26446
|
-
"description": "",
|
|
26447
|
-
"optional": true
|
|
26448
|
-
},
|
|
26449
|
-
"similarityBoost": {
|
|
26450
|
-
"type": "number",
|
|
26451
|
-
"description": "",
|
|
26452
|
-
"optional": true
|
|
26453
|
-
},
|
|
26454
|
-
"style": {
|
|
26455
|
-
"type": "number",
|
|
26456
|
-
"description": "",
|
|
26457
|
-
"optional": true
|
|
26458
|
-
},
|
|
26459
|
-
"speed": {
|
|
26460
|
-
"type": "number",
|
|
26461
|
-
"description": "",
|
|
26462
|
-
"optional": true
|
|
26463
|
-
},
|
|
26464
|
-
"useSpeakerBoost": {
|
|
26465
|
-
"type": "boolean",
|
|
26466
|
-
"description": "",
|
|
26467
|
-
"optional": true
|
|
26468
|
-
}
|
|
26469
|
-
}
|
|
25921
|
+
"parameters": {},
|
|
25922
|
+
"required": [],
|
|
25923
|
+
"returns": "void"
|
|
26470
25924
|
}
|
|
26471
|
-
}
|
|
25925
|
+
},
|
|
25926
|
+
"getters": {
|
|
25927
|
+
"sdk": {
|
|
25928
|
+
"description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
|
|
25929
|
+
"returns": "SupabaseSDKClient<any, any>"
|
|
25930
|
+
},
|
|
25931
|
+
"storage": {
|
|
25932
|
+
"description": "Returns the Supabase Storage client for managing buckets and files.",
|
|
25933
|
+
"returns": "any"
|
|
25934
|
+
},
|
|
25935
|
+
"functions": {
|
|
25936
|
+
"description": "Returns the Supabase Functions client.",
|
|
25937
|
+
"returns": "any"
|
|
25938
|
+
}
|
|
25939
|
+
},
|
|
25940
|
+
"events": {},
|
|
25941
|
+
"state": {},
|
|
25942
|
+
"options": {},
|
|
25943
|
+
"envVars": [],
|
|
25944
|
+
"examples": [
|
|
25945
|
+
{
|
|
25946
|
+
"language": "ts",
|
|
25947
|
+
"code": "const supabase = container.client('supabase', {\n supabaseUrl: 'https://xyz.supabase.co',\n supabaseKey: 'your-anon-key',\n})\n\n// Query data\nconst { data } = await supabase.from('users').select('*')\n\n// Auth\nawait supabase.signInWithPassword('user@example.com', 'password')\n\n// Realtime\nsupabase.subscribe('changes', 'users', (payload) => {\n console.log('Change:', payload)\n})"
|
|
25948
|
+
}
|
|
25949
|
+
]
|
|
26472
25950
|
},
|
|
26473
25951
|
{
|
|
26474
25952
|
"id": "clients.comfyui",
|
|
@@ -26581,133 +26059,379 @@ export const introspectionData = [
|
|
|
26581
26059
|
"viewImage": {
|
|
26582
26060
|
"description": "Download a generated image from ComfyUI as a Buffer.",
|
|
26583
26061
|
"parameters": {
|
|
26584
|
-
"filename": {
|
|
26062
|
+
"filename": {
|
|
26063
|
+
"type": "string",
|
|
26064
|
+
"description": "The image filename"
|
|
26065
|
+
},
|
|
26066
|
+
"subfolder": {
|
|
26067
|
+
"type": "any",
|
|
26068
|
+
"description": "Subfolder within the output directory"
|
|
26069
|
+
},
|
|
26070
|
+
"type": {
|
|
26071
|
+
"type": "any",
|
|
26072
|
+
"description": "Image type ('output', 'input', 'temp')"
|
|
26073
|
+
}
|
|
26074
|
+
},
|
|
26075
|
+
"required": [
|
|
26076
|
+
"filename"
|
|
26077
|
+
],
|
|
26078
|
+
"returns": "Promise<Buffer>"
|
|
26079
|
+
},
|
|
26080
|
+
"connectWs": {
|
|
26081
|
+
"description": "Open a WebSocket connection to ComfyUI for real-time execution tracking. Events emitted: `execution_start`, `executing`, `progress`, `executed`, `execution_cached`, `execution_error`, `execution_complete`.",
|
|
26082
|
+
"parameters": {},
|
|
26083
|
+
"required": [],
|
|
26084
|
+
"returns": "Promise<void>"
|
|
26085
|
+
},
|
|
26086
|
+
"disconnectWs": {
|
|
26087
|
+
"description": "Close the WebSocket connection.",
|
|
26088
|
+
"parameters": {},
|
|
26089
|
+
"required": [],
|
|
26090
|
+
"returns": "void"
|
|
26091
|
+
},
|
|
26092
|
+
"toApiFormat": {
|
|
26093
|
+
"description": "Convert a UI-format workflow to the API format that /prompt expects. Requires a running ComfyUI instance to fetch `object_info` so we can map positional `widgets_values` to their named input fields. If the workflow is already in API format, it's returned as-is.",
|
|
26094
|
+
"parameters": {
|
|
26095
|
+
"workflow": {
|
|
26096
|
+
"type": "Record<string, any>",
|
|
26097
|
+
"description": "Parameter workflow"
|
|
26098
|
+
}
|
|
26099
|
+
},
|
|
26100
|
+
"required": [
|
|
26101
|
+
"workflow"
|
|
26102
|
+
],
|
|
26103
|
+
"returns": "Promise<Record<string, any>>"
|
|
26104
|
+
},
|
|
26105
|
+
"runWorkflow": {
|
|
26106
|
+
"description": "Run a ComfyUI workflow with optional runtime input overrides. Inputs can be provided in two forms: **Direct node mapping** (when no `inputMap` in options): ``` { '3': { seed: 42 }, '6': { text: 'a cat' } } ``` **Named inputs** (when `inputMap` is provided in options): ``` inputs: { positive_prompt: 'a cat', seed: 42 } options.inputMap: { positive_prompt: { nodeId: '6', field: 'text' }, seed: { nodeId: '3', field: 'seed' } } ```",
|
|
26107
|
+
"parameters": {
|
|
26108
|
+
"workflow": {
|
|
26109
|
+
"type": "Record<string, any>",
|
|
26110
|
+
"description": "Parameter workflow"
|
|
26111
|
+
},
|
|
26112
|
+
"inputs": {
|
|
26113
|
+
"type": "Record<string, any>",
|
|
26114
|
+
"description": "Parameter inputs"
|
|
26115
|
+
},
|
|
26116
|
+
"options": {
|
|
26117
|
+
"type": "WorkflowRunOptions",
|
|
26118
|
+
"description": "Parameter options",
|
|
26119
|
+
"properties": {
|
|
26120
|
+
"poll": {
|
|
26121
|
+
"type": "boolean",
|
|
26122
|
+
"description": "Use polling instead of WebSocket for tracking execution"
|
|
26123
|
+
},
|
|
26124
|
+
"pollInterval": {
|
|
26125
|
+
"type": "number",
|
|
26126
|
+
"description": "Polling interval in ms (default 1000)"
|
|
26127
|
+
},
|
|
26128
|
+
"inputMap": {
|
|
26129
|
+
"type": "InputMapping",
|
|
26130
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }"
|
|
26131
|
+
},
|
|
26132
|
+
"outputDir": {
|
|
26133
|
+
"type": "string",
|
|
26134
|
+
"description": "If provided, output images are downloaded to this directory"
|
|
26135
|
+
}
|
|
26136
|
+
}
|
|
26137
|
+
}
|
|
26138
|
+
},
|
|
26139
|
+
"required": [
|
|
26140
|
+
"workflow"
|
|
26141
|
+
],
|
|
26142
|
+
"returns": "Promise<WorkflowResult>"
|
|
26143
|
+
}
|
|
26144
|
+
},
|
|
26145
|
+
"getters": {
|
|
26146
|
+
"clientId": {
|
|
26147
|
+
"description": "The unique client ID used for WebSocket session tracking.",
|
|
26148
|
+
"returns": "string"
|
|
26149
|
+
},
|
|
26150
|
+
"wsURL": {
|
|
26151
|
+
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
26152
|
+
"returns": "string"
|
|
26153
|
+
}
|
|
26154
|
+
},
|
|
26155
|
+
"events": {
|
|
26156
|
+
"execution_start": {
|
|
26157
|
+
"name": "execution_start",
|
|
26158
|
+
"description": "Event emitted by ComfyUIClient",
|
|
26159
|
+
"arguments": {}
|
|
26160
|
+
},
|
|
26161
|
+
"execution_complete": {
|
|
26162
|
+
"name": "execution_complete",
|
|
26163
|
+
"description": "Event emitted by ComfyUIClient",
|
|
26164
|
+
"arguments": {}
|
|
26165
|
+
},
|
|
26166
|
+
"executing": {
|
|
26167
|
+
"name": "executing",
|
|
26168
|
+
"description": "Event emitted by ComfyUIClient",
|
|
26169
|
+
"arguments": {}
|
|
26170
|
+
},
|
|
26171
|
+
"progress": {
|
|
26172
|
+
"name": "progress",
|
|
26173
|
+
"description": "Event emitted by ComfyUIClient",
|
|
26174
|
+
"arguments": {}
|
|
26175
|
+
},
|
|
26176
|
+
"executed": {
|
|
26177
|
+
"name": "executed",
|
|
26178
|
+
"description": "Event emitted by ComfyUIClient",
|
|
26179
|
+
"arguments": {}
|
|
26180
|
+
},
|
|
26181
|
+
"execution_cached": {
|
|
26182
|
+
"name": "execution_cached",
|
|
26183
|
+
"description": "Event emitted by ComfyUIClient",
|
|
26184
|
+
"arguments": {}
|
|
26185
|
+
},
|
|
26186
|
+
"execution_error": {
|
|
26187
|
+
"name": "execution_error",
|
|
26188
|
+
"description": "Event emitted by ComfyUIClient",
|
|
26189
|
+
"arguments": {}
|
|
26190
|
+
}
|
|
26191
|
+
},
|
|
26192
|
+
"state": {},
|
|
26193
|
+
"options": {},
|
|
26194
|
+
"envVars": [],
|
|
26195
|
+
"examples": [
|
|
26196
|
+
{
|
|
26197
|
+
"language": "ts",
|
|
26198
|
+
"code": "const comfy = container.client('comfyui', { baseURL: 'http://localhost:8188' })\nconst result = await comfy.runWorkflow(workflow, {\n '6': { text: 'a beautiful sunset' }\n})\nconsole.log(result.images)"
|
|
26199
|
+
}
|
|
26200
|
+
],
|
|
26201
|
+
"types": {
|
|
26202
|
+
"WorkflowRunOptions": {
|
|
26203
|
+
"description": "",
|
|
26204
|
+
"properties": {
|
|
26205
|
+
"poll": {
|
|
26206
|
+
"type": "boolean",
|
|
26207
|
+
"description": "Use polling instead of WebSocket for tracking execution",
|
|
26208
|
+
"optional": true
|
|
26209
|
+
},
|
|
26210
|
+
"pollInterval": {
|
|
26211
|
+
"type": "number",
|
|
26212
|
+
"description": "Polling interval in ms (default 1000)",
|
|
26213
|
+
"optional": true
|
|
26214
|
+
},
|
|
26215
|
+
"inputMap": {
|
|
26216
|
+
"type": "InputMapping",
|
|
26217
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }",
|
|
26218
|
+
"optional": true
|
|
26219
|
+
},
|
|
26220
|
+
"outputDir": {
|
|
26221
|
+
"type": "string",
|
|
26222
|
+
"description": "If provided, output images are downloaded to this directory",
|
|
26223
|
+
"optional": true
|
|
26224
|
+
}
|
|
26225
|
+
}
|
|
26226
|
+
},
|
|
26227
|
+
"WorkflowResult": {
|
|
26228
|
+
"description": "",
|
|
26229
|
+
"properties": {
|
|
26230
|
+
"promptId": {
|
|
26231
|
+
"type": "string",
|
|
26232
|
+
"description": ""
|
|
26233
|
+
},
|
|
26234
|
+
"outputs": {
|
|
26235
|
+
"type": "Record<string, any>",
|
|
26236
|
+
"description": ""
|
|
26237
|
+
},
|
|
26238
|
+
"images": {
|
|
26239
|
+
"type": "Array<{ filename: string; subfolder: string; type: string; localPath?: string }>",
|
|
26240
|
+
"description": "",
|
|
26241
|
+
"optional": true
|
|
26242
|
+
}
|
|
26243
|
+
}
|
|
26244
|
+
}
|
|
26245
|
+
}
|
|
26246
|
+
},
|
|
26247
|
+
{
|
|
26248
|
+
"id": "clients.elevenlabs",
|
|
26249
|
+
"description": "ElevenLabs client — text-to-speech synthesis via the ElevenLabs REST API. Provides methods for listing voices, listing models, and generating speech audio. Audio is returned as a Buffer; use `say()` for a convenience method that writes to disk.",
|
|
26250
|
+
"shortcut": "clients.elevenlabs",
|
|
26251
|
+
"className": "ElevenLabsClient",
|
|
26252
|
+
"methods": {
|
|
26253
|
+
"beforeRequest": {
|
|
26254
|
+
"description": "Inject the xi-api-key header before each request.",
|
|
26255
|
+
"parameters": {},
|
|
26256
|
+
"required": [],
|
|
26257
|
+
"returns": "void"
|
|
26258
|
+
},
|
|
26259
|
+
"connect": {
|
|
26260
|
+
"description": "Validate the API key by listing available models.",
|
|
26261
|
+
"parameters": {},
|
|
26262
|
+
"required": [],
|
|
26263
|
+
"returns": "Promise<this>",
|
|
26264
|
+
"examples": [
|
|
26265
|
+
{
|
|
26266
|
+
"language": "ts",
|
|
26267
|
+
"code": "await el.connect()"
|
|
26268
|
+
}
|
|
26269
|
+
]
|
|
26270
|
+
},
|
|
26271
|
+
"listVoices": {
|
|
26272
|
+
"description": "List available voices with optional search and filtering.",
|
|
26273
|
+
"parameters": {
|
|
26274
|
+
"options": {
|
|
26275
|
+
"type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
|
|
26276
|
+
"description": "Query parameters for filtering voices"
|
|
26277
|
+
}
|
|
26278
|
+
},
|
|
26279
|
+
"required": [],
|
|
26280
|
+
"returns": "Promise<any>",
|
|
26281
|
+
"examples": [
|
|
26282
|
+
{
|
|
26283
|
+
"language": "ts",
|
|
26284
|
+
"code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
|
|
26285
|
+
}
|
|
26286
|
+
]
|
|
26287
|
+
},
|
|
26288
|
+
"getVoice": {
|
|
26289
|
+
"description": "Get details for a single voice.",
|
|
26290
|
+
"parameters": {
|
|
26291
|
+
"voiceId": {
|
|
26585
26292
|
"type": "string",
|
|
26586
|
-
"description": "The
|
|
26587
|
-
},
|
|
26588
|
-
"subfolder": {
|
|
26589
|
-
"type": "any",
|
|
26590
|
-
"description": "Subfolder within the output directory"
|
|
26591
|
-
},
|
|
26592
|
-
"type": {
|
|
26593
|
-
"type": "any",
|
|
26594
|
-
"description": "Image type ('output', 'input', 'temp')"
|
|
26293
|
+
"description": "The voice ID to look up"
|
|
26595
26294
|
}
|
|
26596
26295
|
},
|
|
26597
26296
|
"required": [
|
|
26598
|
-
"
|
|
26297
|
+
"voiceId"
|
|
26599
26298
|
],
|
|
26600
|
-
"returns": "Promise<
|
|
26601
|
-
|
|
26602
|
-
|
|
26603
|
-
|
|
26604
|
-
|
|
26605
|
-
|
|
26606
|
-
|
|
26299
|
+
"returns": "Promise<any>",
|
|
26300
|
+
"examples": [
|
|
26301
|
+
{
|
|
26302
|
+
"language": "ts",
|
|
26303
|
+
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
26304
|
+
}
|
|
26305
|
+
]
|
|
26607
26306
|
},
|
|
26608
|
-
"
|
|
26609
|
-
"description": "
|
|
26307
|
+
"listModels": {
|
|
26308
|
+
"description": "List available TTS models.",
|
|
26610
26309
|
"parameters": {},
|
|
26611
26310
|
"required": [],
|
|
26612
|
-
"returns": "
|
|
26311
|
+
"returns": "Promise<any[]>",
|
|
26312
|
+
"examples": [
|
|
26313
|
+
{
|
|
26314
|
+
"language": "ts",
|
|
26315
|
+
"code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
|
|
26316
|
+
}
|
|
26317
|
+
]
|
|
26613
26318
|
},
|
|
26614
|
-
"
|
|
26615
|
-
"description": "
|
|
26319
|
+
"synthesize": {
|
|
26320
|
+
"description": "Synthesize speech from text, returning audio as a Buffer.",
|
|
26616
26321
|
"parameters": {
|
|
26617
|
-
"
|
|
26618
|
-
"type": "
|
|
26619
|
-
"description": "
|
|
26322
|
+
"text": {
|
|
26323
|
+
"type": "string",
|
|
26324
|
+
"description": "The text to convert to speech"
|
|
26325
|
+
},
|
|
26326
|
+
"options": {
|
|
26327
|
+
"type": "SynthesizeOptions",
|
|
26328
|
+
"description": "Voice, model, format, and voice settings overrides",
|
|
26329
|
+
"properties": {
|
|
26330
|
+
"voiceId": {
|
|
26331
|
+
"type": "string",
|
|
26332
|
+
"description": ""
|
|
26333
|
+
},
|
|
26334
|
+
"modelId": {
|
|
26335
|
+
"type": "string",
|
|
26336
|
+
"description": ""
|
|
26337
|
+
},
|
|
26338
|
+
"outputFormat": {
|
|
26339
|
+
"type": "string",
|
|
26340
|
+
"description": ""
|
|
26341
|
+
},
|
|
26342
|
+
"voiceSettings": {
|
|
26343
|
+
"type": "ElevenLabsVoiceSettings",
|
|
26344
|
+
"description": ""
|
|
26345
|
+
},
|
|
26346
|
+
"disableCache": {
|
|
26347
|
+
"type": "boolean",
|
|
26348
|
+
"description": ""
|
|
26349
|
+
}
|
|
26350
|
+
}
|
|
26620
26351
|
}
|
|
26621
26352
|
},
|
|
26622
26353
|
"required": [
|
|
26623
|
-
"
|
|
26354
|
+
"text"
|
|
26624
26355
|
],
|
|
26625
|
-
"returns": "Promise<
|
|
26356
|
+
"returns": "Promise<Buffer>",
|
|
26357
|
+
"examples": [
|
|
26358
|
+
{
|
|
26359
|
+
"language": "ts",
|
|
26360
|
+
"code": "const audio = await el.synthesize('Hello world')\n// audio is a Buffer of mp3 data\n\nconst custom = await el.synthesize('Hello', {\n voiceId: '21m00Tcm4TlvDq8ikWAM',\n voiceSettings: { stability: 0.5, similarityBoost: 0.8 }\n})"
|
|
26361
|
+
}
|
|
26362
|
+
]
|
|
26626
26363
|
},
|
|
26627
|
-
"
|
|
26628
|
-
"description": "
|
|
26364
|
+
"say": {
|
|
26365
|
+
"description": "Synthesize speech and write the audio to a file.",
|
|
26629
26366
|
"parameters": {
|
|
26630
|
-
"
|
|
26631
|
-
"type": "
|
|
26632
|
-
"description": "
|
|
26367
|
+
"text": {
|
|
26368
|
+
"type": "string",
|
|
26369
|
+
"description": "The text to convert to speech"
|
|
26633
26370
|
},
|
|
26634
|
-
"
|
|
26635
|
-
"type": "
|
|
26636
|
-
"description": "
|
|
26371
|
+
"outputPath": {
|
|
26372
|
+
"type": "string",
|
|
26373
|
+
"description": "File path to write the audio to"
|
|
26637
26374
|
},
|
|
26638
26375
|
"options": {
|
|
26639
|
-
"type": "
|
|
26640
|
-
"description": "
|
|
26376
|
+
"type": "SynthesizeOptions",
|
|
26377
|
+
"description": "Voice, model, format, and voice settings overrides",
|
|
26641
26378
|
"properties": {
|
|
26642
|
-
"
|
|
26643
|
-
"type": "
|
|
26644
|
-
"description": "
|
|
26645
|
-
},
|
|
26646
|
-
"pollInterval": {
|
|
26647
|
-
"type": "number",
|
|
26648
|
-
"description": "Polling interval in ms (default 1000)"
|
|
26379
|
+
"voiceId": {
|
|
26380
|
+
"type": "string",
|
|
26381
|
+
"description": ""
|
|
26649
26382
|
},
|
|
26650
|
-
"
|
|
26651
|
-
"type": "
|
|
26652
|
-
"description": "
|
|
26383
|
+
"modelId": {
|
|
26384
|
+
"type": "string",
|
|
26385
|
+
"description": ""
|
|
26653
26386
|
},
|
|
26654
|
-
"
|
|
26387
|
+
"outputFormat": {
|
|
26655
26388
|
"type": "string",
|
|
26656
|
-
"description": "
|
|
26389
|
+
"description": ""
|
|
26390
|
+
},
|
|
26391
|
+
"voiceSettings": {
|
|
26392
|
+
"type": "ElevenLabsVoiceSettings",
|
|
26393
|
+
"description": ""
|
|
26394
|
+
},
|
|
26395
|
+
"disableCache": {
|
|
26396
|
+
"type": "boolean",
|
|
26397
|
+
"description": ""
|
|
26657
26398
|
}
|
|
26658
26399
|
}
|
|
26659
26400
|
}
|
|
26660
26401
|
},
|
|
26661
26402
|
"required": [
|
|
26662
|
-
"
|
|
26403
|
+
"text",
|
|
26404
|
+
"outputPath"
|
|
26663
26405
|
],
|
|
26664
|
-
"returns": "Promise<
|
|
26406
|
+
"returns": "Promise<string>",
|
|
26407
|
+
"examples": [
|
|
26408
|
+
{
|
|
26409
|
+
"language": "ts",
|
|
26410
|
+
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
26411
|
+
}
|
|
26412
|
+
]
|
|
26665
26413
|
}
|
|
26666
26414
|
},
|
|
26667
26415
|
"getters": {
|
|
26668
|
-
"
|
|
26669
|
-
"description": "The
|
|
26670
|
-
"returns": "string"
|
|
26671
|
-
},
|
|
26672
|
-
"wsURL": {
|
|
26673
|
-
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
26416
|
+
"apiKey": {
|
|
26417
|
+
"description": "The resolved API key from options or environment.",
|
|
26674
26418
|
"returns": "string"
|
|
26675
26419
|
}
|
|
26676
26420
|
},
|
|
26677
26421
|
"events": {
|
|
26678
|
-
"
|
|
26679
|
-
"name": "
|
|
26680
|
-
"description": "Event emitted by
|
|
26681
|
-
"arguments": {}
|
|
26682
|
-
},
|
|
26683
|
-
"execution_complete": {
|
|
26684
|
-
"name": "execution_complete",
|
|
26685
|
-
"description": "Event emitted by ComfyUIClient",
|
|
26686
|
-
"arguments": {}
|
|
26687
|
-
},
|
|
26688
|
-
"executing": {
|
|
26689
|
-
"name": "executing",
|
|
26690
|
-
"description": "Event emitted by ComfyUIClient",
|
|
26691
|
-
"arguments": {}
|
|
26692
|
-
},
|
|
26693
|
-
"progress": {
|
|
26694
|
-
"name": "progress",
|
|
26695
|
-
"description": "Event emitted by ComfyUIClient",
|
|
26696
|
-
"arguments": {}
|
|
26697
|
-
},
|
|
26698
|
-
"executed": {
|
|
26699
|
-
"name": "executed",
|
|
26700
|
-
"description": "Event emitted by ComfyUIClient",
|
|
26422
|
+
"failure": {
|
|
26423
|
+
"name": "failure",
|
|
26424
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
26701
26425
|
"arguments": {}
|
|
26702
26426
|
},
|
|
26703
|
-
"
|
|
26704
|
-
"name": "
|
|
26705
|
-
"description": "Event emitted by
|
|
26427
|
+
"voices": {
|
|
26428
|
+
"name": "voices",
|
|
26429
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
26706
26430
|
"arguments": {}
|
|
26707
26431
|
},
|
|
26708
|
-
"
|
|
26709
|
-
"name": "
|
|
26710
|
-
"description": "Event emitted by
|
|
26432
|
+
"speech": {
|
|
26433
|
+
"name": "speech",
|
|
26434
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
26711
26435
|
"arguments": {}
|
|
26712
26436
|
}
|
|
26713
26437
|
},
|
|
@@ -26717,48 +26441,65 @@ export const introspectionData = [
|
|
|
26717
26441
|
"examples": [
|
|
26718
26442
|
{
|
|
26719
26443
|
"language": "ts",
|
|
26720
|
-
"code": "const
|
|
26444
|
+
"code": "const el = container.client('elevenlabs')\nawait el.connect()\nconst voices = await el.listVoices()\nconst audio = await el.synthesize('Hello world')\n// audio is a Buffer of mp3 data"
|
|
26721
26445
|
}
|
|
26722
26446
|
],
|
|
26723
26447
|
"types": {
|
|
26724
|
-
"
|
|
26448
|
+
"SynthesizeOptions": {
|
|
26725
26449
|
"description": "",
|
|
26726
26450
|
"properties": {
|
|
26727
|
-
"
|
|
26728
|
-
"type": "
|
|
26729
|
-
"description": "
|
|
26451
|
+
"voiceId": {
|
|
26452
|
+
"type": "string",
|
|
26453
|
+
"description": "",
|
|
26730
26454
|
"optional": true
|
|
26731
26455
|
},
|
|
26732
|
-
"
|
|
26733
|
-
"type": "
|
|
26734
|
-
"description": "
|
|
26456
|
+
"modelId": {
|
|
26457
|
+
"type": "string",
|
|
26458
|
+
"description": "",
|
|
26735
26459
|
"optional": true
|
|
26736
26460
|
},
|
|
26737
|
-
"
|
|
26738
|
-
"type": "
|
|
26739
|
-
"description": "
|
|
26461
|
+
"outputFormat": {
|
|
26462
|
+
"type": "string",
|
|
26463
|
+
"description": "",
|
|
26740
26464
|
"optional": true
|
|
26741
26465
|
},
|
|
26742
|
-
"
|
|
26743
|
-
"type": "
|
|
26744
|
-
"description": "
|
|
26466
|
+
"voiceSettings": {
|
|
26467
|
+
"type": "ElevenLabsVoiceSettings",
|
|
26468
|
+
"description": "",
|
|
26469
|
+
"optional": true
|
|
26470
|
+
},
|
|
26471
|
+
"disableCache": {
|
|
26472
|
+
"type": "boolean",
|
|
26473
|
+
"description": "",
|
|
26745
26474
|
"optional": true
|
|
26746
26475
|
}
|
|
26747
26476
|
}
|
|
26748
26477
|
},
|
|
26749
|
-
"
|
|
26478
|
+
"ElevenLabsVoiceSettings": {
|
|
26750
26479
|
"description": "",
|
|
26751
26480
|
"properties": {
|
|
26752
|
-
"
|
|
26753
|
-
"type": "
|
|
26754
|
-
"description": ""
|
|
26481
|
+
"stability": {
|
|
26482
|
+
"type": "number",
|
|
26483
|
+
"description": "",
|
|
26484
|
+
"optional": true
|
|
26755
26485
|
},
|
|
26756
|
-
"
|
|
26757
|
-
"type": "
|
|
26758
|
-
"description": ""
|
|
26486
|
+
"similarityBoost": {
|
|
26487
|
+
"type": "number",
|
|
26488
|
+
"description": "",
|
|
26489
|
+
"optional": true
|
|
26759
26490
|
},
|
|
26760
|
-
"
|
|
26761
|
-
"type": "
|
|
26491
|
+
"style": {
|
|
26492
|
+
"type": "number",
|
|
26493
|
+
"description": "",
|
|
26494
|
+
"optional": true
|
|
26495
|
+
},
|
|
26496
|
+
"speed": {
|
|
26497
|
+
"type": "number",
|
|
26498
|
+
"description": "",
|
|
26499
|
+
"optional": true
|
|
26500
|
+
},
|
|
26501
|
+
"useSpeakerBoost": {
|
|
26502
|
+
"type": "boolean",
|
|
26762
26503
|
"description": "",
|
|
26763
26504
|
"optional": true
|
|
26764
26505
|
}
|