@soederpop/luca 0.0.30 → 0.0.31
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/package.json +1 -1
- package/src/agi/features/assistant.ts +58 -2
- package/src/bootstrap/generated.ts +1 -1
- package/src/cli/build-info.ts +2 -2
- package/src/command.ts +20 -1
- package/src/commands/serve.ts +27 -0
- package/src/endpoint.ts +6 -0
- package/src/helper.ts +42 -5
- package/src/introspection/generated.agi.ts +844 -776
- package/src/introspection/generated.node.ts +47 -1
- package/src/introspection/generated.web.ts +1 -1
- package/src/node/features/helpers.ts +5 -2
- package/src/scaffolds/generated.ts +1 -1
- package/src/servers/express.ts +18 -0
|
@@ -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-24T09:08:05.995Z
|
|
5
5
|
|
|
6
6
|
setBuildTimeData('features.googleDocs', {
|
|
7
7
|
"id": "features.googleDocs",
|
|
@@ -10426,6 +10426,16 @@ setBuildTimeData('features.helpers', {
|
|
|
10426
10426
|
"absPath": {
|
|
10427
10427
|
"type": "string",
|
|
10428
10428
|
"description": "Absolute path to the module file"
|
|
10429
|
+
},
|
|
10430
|
+
"options": {
|
|
10431
|
+
"type": "{ cacheBust?: boolean }",
|
|
10432
|
+
"description": "Optional settings",
|
|
10433
|
+
"properties": {
|
|
10434
|
+
"cacheBust": {
|
|
10435
|
+
"type": "any",
|
|
10436
|
+
"description": "When true, appends a timestamp query to bypass the native import cache (useful for hot reload)"
|
|
10437
|
+
}
|
|
10438
|
+
}
|
|
10429
10439
|
}
|
|
10430
10440
|
},
|
|
10431
10441
|
"required": [
|
|
@@ -11882,419 +11892,122 @@ setBuildTimeData('clients.supabase', {
|
|
|
11882
11892
|
]
|
|
11883
11893
|
});
|
|
11884
11894
|
|
|
11885
|
-
setBuildTimeData('clients.
|
|
11886
|
-
"id": "clients.
|
|
11887
|
-
"description": "
|
|
11888
|
-
"shortcut": "clients.
|
|
11889
|
-
"className": "
|
|
11895
|
+
setBuildTimeData('clients.elevenlabs', {
|
|
11896
|
+
"id": "clients.elevenlabs",
|
|
11897
|
+
"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.",
|
|
11898
|
+
"shortcut": "clients.elevenlabs",
|
|
11899
|
+
"className": "ElevenLabsClient",
|
|
11890
11900
|
"methods": {
|
|
11891
|
-
"
|
|
11892
|
-
"description": "
|
|
11893
|
-
"parameters": {
|
|
11894
|
-
"prompt": {
|
|
11895
|
-
"type": "Record<string, any>",
|
|
11896
|
-
"description": "The API-format workflow object"
|
|
11897
|
-
},
|
|
11898
|
-
"clientId": {
|
|
11899
|
-
"type": "string",
|
|
11900
|
-
"description": "Override the client ID for this request"
|
|
11901
|
-
}
|
|
11902
|
-
},
|
|
11903
|
-
"required": [
|
|
11904
|
-
"prompt"
|
|
11905
|
-
],
|
|
11906
|
-
"returns": "Promise<{ prompt_id: string; number: number }>",
|
|
11907
|
-
"examples": [
|
|
11908
|
-
{
|
|
11909
|
-
"language": "ts",
|
|
11910
|
-
"code": "const { prompt_id } = await comfy.queuePrompt(apiWorkflow)"
|
|
11911
|
-
}
|
|
11912
|
-
]
|
|
11913
|
-
},
|
|
11914
|
-
"getQueue": {
|
|
11915
|
-
"description": "Get the current prompt queue status.",
|
|
11901
|
+
"beforeRequest": {
|
|
11902
|
+
"description": "Inject the xi-api-key header before each request.",
|
|
11916
11903
|
"parameters": {},
|
|
11917
11904
|
"required": [],
|
|
11918
|
-
"returns": "
|
|
11919
|
-
},
|
|
11920
|
-
"getHistory": {
|
|
11921
|
-
"description": "Get execution history, optionally for a specific prompt.",
|
|
11922
|
-
"parameters": {
|
|
11923
|
-
"promptId": {
|
|
11924
|
-
"type": "string",
|
|
11925
|
-
"description": "If provided, returns history for this prompt only"
|
|
11926
|
-
}
|
|
11927
|
-
},
|
|
11928
|
-
"required": [],
|
|
11929
|
-
"returns": "Promise<Record<string, any>>"
|
|
11905
|
+
"returns": "void"
|
|
11930
11906
|
},
|
|
11931
|
-
"
|
|
11932
|
-
"description": "
|
|
11907
|
+
"connect": {
|
|
11908
|
+
"description": "Validate the API key by listing available models.",
|
|
11933
11909
|
"parameters": {},
|
|
11934
11910
|
"required": [],
|
|
11935
|
-
"returns": "Promise<
|
|
11936
|
-
|
|
11937
|
-
|
|
11938
|
-
|
|
11939
|
-
|
|
11940
|
-
"nodeClass": {
|
|
11941
|
-
"type": "string",
|
|
11942
|
-
"description": "If provided, returns info for this node type only"
|
|
11911
|
+
"returns": "Promise<this>",
|
|
11912
|
+
"examples": [
|
|
11913
|
+
{
|
|
11914
|
+
"language": "ts",
|
|
11915
|
+
"code": "await el.connect()"
|
|
11943
11916
|
}
|
|
11944
|
-
|
|
11945
|
-
"required": [],
|
|
11946
|
-
"returns": "Promise<any>"
|
|
11947
|
-
},
|
|
11948
|
-
"interrupt": {
|
|
11949
|
-
"description": "Interrupt the currently executing prompt.",
|
|
11950
|
-
"parameters": {},
|
|
11951
|
-
"required": [],
|
|
11952
|
-
"returns": "Promise<void>"
|
|
11917
|
+
]
|
|
11953
11918
|
},
|
|
11954
|
-
"
|
|
11955
|
-
"description": "List available
|
|
11919
|
+
"listVoices": {
|
|
11920
|
+
"description": "List available voices with optional search and filtering.",
|
|
11956
11921
|
"parameters": {
|
|
11957
|
-
"
|
|
11958
|
-
"type": "string",
|
|
11959
|
-
"description": "
|
|
11922
|
+
"options": {
|
|
11923
|
+
"type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
|
|
11924
|
+
"description": "Query parameters for filtering voices"
|
|
11960
11925
|
}
|
|
11961
11926
|
},
|
|
11962
11927
|
"required": [],
|
|
11963
|
-
"returns": "Promise<
|
|
11964
|
-
|
|
11965
|
-
|
|
11966
|
-
|
|
11967
|
-
|
|
11968
|
-
"required": [],
|
|
11969
|
-
"returns": "Promise<string[]>"
|
|
11970
|
-
},
|
|
11971
|
-
"uploadImage": {
|
|
11972
|
-
"description": "Upload an image to ComfyUI's input directory.",
|
|
11973
|
-
"parameters": {
|
|
11974
|
-
"file": {
|
|
11975
|
-
"type": "Buffer | Blob",
|
|
11976
|
-
"description": "The image data as Buffer or Blob"
|
|
11977
|
-
},
|
|
11978
|
-
"filename": {
|
|
11979
|
-
"type": "string",
|
|
11980
|
-
"description": "File name for the upload"
|
|
11981
|
-
},
|
|
11982
|
-
"opts": {
|
|
11983
|
-
"type": "{ subfolder?: string; type?: string; overwrite?: boolean }",
|
|
11984
|
-
"description": "Upload options (subfolder, type, overwrite)"
|
|
11928
|
+
"returns": "Promise<any>",
|
|
11929
|
+
"examples": [
|
|
11930
|
+
{
|
|
11931
|
+
"language": "ts",
|
|
11932
|
+
"code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
|
|
11985
11933
|
}
|
|
11986
|
-
|
|
11987
|
-
"required": [
|
|
11988
|
-
"file",
|
|
11989
|
-
"filename"
|
|
11990
|
-
],
|
|
11991
|
-
"returns": "Promise<any>"
|
|
11934
|
+
]
|
|
11992
11935
|
},
|
|
11993
|
-
"
|
|
11994
|
-
"description": "
|
|
11936
|
+
"getVoice": {
|
|
11937
|
+
"description": "Get details for a single voice.",
|
|
11995
11938
|
"parameters": {
|
|
11996
|
-
"
|
|
11939
|
+
"voiceId": {
|
|
11997
11940
|
"type": "string",
|
|
11998
|
-
"description": "The
|
|
11999
|
-
},
|
|
12000
|
-
"subfolder": {
|
|
12001
|
-
"type": "any",
|
|
12002
|
-
"description": "Subfolder within the output directory"
|
|
12003
|
-
},
|
|
12004
|
-
"type": {
|
|
12005
|
-
"type": "any",
|
|
12006
|
-
"description": "Image type ('output', 'input', 'temp')"
|
|
11941
|
+
"description": "The voice ID to look up"
|
|
12007
11942
|
}
|
|
12008
11943
|
},
|
|
12009
11944
|
"required": [
|
|
12010
|
-
"
|
|
11945
|
+
"voiceId"
|
|
12011
11946
|
],
|
|
12012
|
-
"returns": "Promise<
|
|
12013
|
-
|
|
12014
|
-
|
|
12015
|
-
|
|
12016
|
-
|
|
12017
|
-
|
|
12018
|
-
|
|
11947
|
+
"returns": "Promise<any>",
|
|
11948
|
+
"examples": [
|
|
11949
|
+
{
|
|
11950
|
+
"language": "ts",
|
|
11951
|
+
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
11952
|
+
}
|
|
11953
|
+
]
|
|
12019
11954
|
},
|
|
12020
|
-
"
|
|
12021
|
-
"description": "
|
|
11955
|
+
"listModels": {
|
|
11956
|
+
"description": "List available TTS models.",
|
|
12022
11957
|
"parameters": {},
|
|
12023
11958
|
"required": [],
|
|
12024
|
-
"returns": "
|
|
12025
|
-
|
|
12026
|
-
|
|
12027
|
-
|
|
12028
|
-
|
|
12029
|
-
"workflow": {
|
|
12030
|
-
"type": "Record<string, any>",
|
|
12031
|
-
"description": "Parameter workflow"
|
|
11959
|
+
"returns": "Promise<any[]>",
|
|
11960
|
+
"examples": [
|
|
11961
|
+
{
|
|
11962
|
+
"language": "ts",
|
|
11963
|
+
"code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
|
|
12032
11964
|
}
|
|
12033
|
-
|
|
12034
|
-
"required": [
|
|
12035
|
-
"workflow"
|
|
12036
|
-
],
|
|
12037
|
-
"returns": "Promise<Record<string, any>>"
|
|
11965
|
+
]
|
|
12038
11966
|
},
|
|
12039
|
-
"
|
|
12040
|
-
"description": "
|
|
11967
|
+
"synthesize": {
|
|
11968
|
+
"description": "Synthesize speech from text, returning audio as a Buffer.",
|
|
12041
11969
|
"parameters": {
|
|
12042
|
-
"
|
|
12043
|
-
"type": "
|
|
12044
|
-
"description": "
|
|
12045
|
-
},
|
|
12046
|
-
"inputs": {
|
|
12047
|
-
"type": "Record<string, any>",
|
|
12048
|
-
"description": "Parameter inputs"
|
|
11970
|
+
"text": {
|
|
11971
|
+
"type": "string",
|
|
11972
|
+
"description": "The text to convert to speech"
|
|
12049
11973
|
},
|
|
12050
11974
|
"options": {
|
|
12051
|
-
"type": "
|
|
12052
|
-
"description": "
|
|
11975
|
+
"type": "SynthesizeOptions",
|
|
11976
|
+
"description": "Voice, model, format, and voice settings overrides",
|
|
12053
11977
|
"properties": {
|
|
12054
|
-
"
|
|
12055
|
-
"type": "
|
|
12056
|
-
"description": "
|
|
12057
|
-
},
|
|
12058
|
-
"pollInterval": {
|
|
12059
|
-
"type": "number",
|
|
12060
|
-
"description": "Polling interval in ms (default 1000)"
|
|
11978
|
+
"voiceId": {
|
|
11979
|
+
"type": "string",
|
|
11980
|
+
"description": ""
|
|
12061
11981
|
},
|
|
12062
|
-
"
|
|
12063
|
-
"type": "
|
|
12064
|
-
"description": "
|
|
11982
|
+
"modelId": {
|
|
11983
|
+
"type": "string",
|
|
11984
|
+
"description": ""
|
|
12065
11985
|
},
|
|
12066
|
-
"
|
|
11986
|
+
"outputFormat": {
|
|
12067
11987
|
"type": "string",
|
|
12068
|
-
"description": "
|
|
11988
|
+
"description": ""
|
|
11989
|
+
},
|
|
11990
|
+
"voiceSettings": {
|
|
11991
|
+
"type": "ElevenLabsVoiceSettings",
|
|
11992
|
+
"description": ""
|
|
11993
|
+
},
|
|
11994
|
+
"disableCache": {
|
|
11995
|
+
"type": "boolean",
|
|
11996
|
+
"description": ""
|
|
12069
11997
|
}
|
|
12070
11998
|
}
|
|
12071
11999
|
}
|
|
12072
12000
|
},
|
|
12073
12001
|
"required": [
|
|
12074
|
-
"
|
|
12002
|
+
"text"
|
|
12075
12003
|
],
|
|
12076
|
-
"returns": "Promise<
|
|
12077
|
-
|
|
12078
|
-
|
|
12079
|
-
|
|
12080
|
-
|
|
12081
|
-
|
|
12082
|
-
|
|
12083
|
-
},
|
|
12084
|
-
"wsURL": {
|
|
12085
|
-
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
12086
|
-
"returns": "string"
|
|
12087
|
-
}
|
|
12088
|
-
},
|
|
12089
|
-
"events": {
|
|
12090
|
-
"execution_start": {
|
|
12091
|
-
"name": "execution_start",
|
|
12092
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12093
|
-
"arguments": {}
|
|
12094
|
-
},
|
|
12095
|
-
"execution_complete": {
|
|
12096
|
-
"name": "execution_complete",
|
|
12097
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12098
|
-
"arguments": {}
|
|
12099
|
-
},
|
|
12100
|
-
"executing": {
|
|
12101
|
-
"name": "executing",
|
|
12102
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12103
|
-
"arguments": {}
|
|
12104
|
-
},
|
|
12105
|
-
"progress": {
|
|
12106
|
-
"name": "progress",
|
|
12107
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12108
|
-
"arguments": {}
|
|
12109
|
-
},
|
|
12110
|
-
"executed": {
|
|
12111
|
-
"name": "executed",
|
|
12112
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12113
|
-
"arguments": {}
|
|
12114
|
-
},
|
|
12115
|
-
"execution_cached": {
|
|
12116
|
-
"name": "execution_cached",
|
|
12117
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12118
|
-
"arguments": {}
|
|
12119
|
-
},
|
|
12120
|
-
"execution_error": {
|
|
12121
|
-
"name": "execution_error",
|
|
12122
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12123
|
-
"arguments": {}
|
|
12124
|
-
}
|
|
12125
|
-
},
|
|
12126
|
-
"state": {},
|
|
12127
|
-
"options": {},
|
|
12128
|
-
"envVars": [],
|
|
12129
|
-
"examples": [
|
|
12130
|
-
{
|
|
12131
|
-
"language": "ts",
|
|
12132
|
-
"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)"
|
|
12133
|
-
}
|
|
12134
|
-
],
|
|
12135
|
-
"types": {
|
|
12136
|
-
"WorkflowRunOptions": {
|
|
12137
|
-
"description": "",
|
|
12138
|
-
"properties": {
|
|
12139
|
-
"poll": {
|
|
12140
|
-
"type": "boolean",
|
|
12141
|
-
"description": "Use polling instead of WebSocket for tracking execution",
|
|
12142
|
-
"optional": true
|
|
12143
|
-
},
|
|
12144
|
-
"pollInterval": {
|
|
12145
|
-
"type": "number",
|
|
12146
|
-
"description": "Polling interval in ms (default 1000)",
|
|
12147
|
-
"optional": true
|
|
12148
|
-
},
|
|
12149
|
-
"inputMap": {
|
|
12150
|
-
"type": "InputMapping",
|
|
12151
|
-
"description": "Named input mapping: semantic name -> { nodeId, field }",
|
|
12152
|
-
"optional": true
|
|
12153
|
-
},
|
|
12154
|
-
"outputDir": {
|
|
12155
|
-
"type": "string",
|
|
12156
|
-
"description": "If provided, output images are downloaded to this directory",
|
|
12157
|
-
"optional": true
|
|
12158
|
-
}
|
|
12159
|
-
}
|
|
12160
|
-
},
|
|
12161
|
-
"WorkflowResult": {
|
|
12162
|
-
"description": "",
|
|
12163
|
-
"properties": {
|
|
12164
|
-
"promptId": {
|
|
12165
|
-
"type": "string",
|
|
12166
|
-
"description": ""
|
|
12167
|
-
},
|
|
12168
|
-
"outputs": {
|
|
12169
|
-
"type": "Record<string, any>",
|
|
12170
|
-
"description": ""
|
|
12171
|
-
},
|
|
12172
|
-
"images": {
|
|
12173
|
-
"type": "Array<{ filename: string; subfolder: string; type: string; localPath?: string }>",
|
|
12174
|
-
"description": "",
|
|
12175
|
-
"optional": true
|
|
12176
|
-
}
|
|
12177
|
-
}
|
|
12178
|
-
}
|
|
12179
|
-
}
|
|
12180
|
-
});
|
|
12181
|
-
|
|
12182
|
-
setBuildTimeData('clients.elevenlabs', {
|
|
12183
|
-
"id": "clients.elevenlabs",
|
|
12184
|
-
"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.",
|
|
12185
|
-
"shortcut": "clients.elevenlabs",
|
|
12186
|
-
"className": "ElevenLabsClient",
|
|
12187
|
-
"methods": {
|
|
12188
|
-
"beforeRequest": {
|
|
12189
|
-
"description": "Inject the xi-api-key header before each request.",
|
|
12190
|
-
"parameters": {},
|
|
12191
|
-
"required": [],
|
|
12192
|
-
"returns": "void"
|
|
12193
|
-
},
|
|
12194
|
-
"connect": {
|
|
12195
|
-
"description": "Validate the API key by listing available models.",
|
|
12196
|
-
"parameters": {},
|
|
12197
|
-
"required": [],
|
|
12198
|
-
"returns": "Promise<this>",
|
|
12199
|
-
"examples": [
|
|
12200
|
-
{
|
|
12201
|
-
"language": "ts",
|
|
12202
|
-
"code": "await el.connect()"
|
|
12203
|
-
}
|
|
12204
|
-
]
|
|
12205
|
-
},
|
|
12206
|
-
"listVoices": {
|
|
12207
|
-
"description": "List available voices with optional search and filtering.",
|
|
12208
|
-
"parameters": {
|
|
12209
|
-
"options": {
|
|
12210
|
-
"type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
|
|
12211
|
-
"description": "Query parameters for filtering voices"
|
|
12212
|
-
}
|
|
12213
|
-
},
|
|
12214
|
-
"required": [],
|
|
12215
|
-
"returns": "Promise<any>",
|
|
12216
|
-
"examples": [
|
|
12217
|
-
{
|
|
12218
|
-
"language": "ts",
|
|
12219
|
-
"code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
|
|
12220
|
-
}
|
|
12221
|
-
]
|
|
12222
|
-
},
|
|
12223
|
-
"getVoice": {
|
|
12224
|
-
"description": "Get details for a single voice.",
|
|
12225
|
-
"parameters": {
|
|
12226
|
-
"voiceId": {
|
|
12227
|
-
"type": "string",
|
|
12228
|
-
"description": "The voice ID to look up"
|
|
12229
|
-
}
|
|
12230
|
-
},
|
|
12231
|
-
"required": [
|
|
12232
|
-
"voiceId"
|
|
12233
|
-
],
|
|
12234
|
-
"returns": "Promise<any>",
|
|
12235
|
-
"examples": [
|
|
12236
|
-
{
|
|
12237
|
-
"language": "ts",
|
|
12238
|
-
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
12239
|
-
}
|
|
12240
|
-
]
|
|
12241
|
-
},
|
|
12242
|
-
"listModels": {
|
|
12243
|
-
"description": "List available TTS models.",
|
|
12244
|
-
"parameters": {},
|
|
12245
|
-
"required": [],
|
|
12246
|
-
"returns": "Promise<any[]>",
|
|
12247
|
-
"examples": [
|
|
12248
|
-
{
|
|
12249
|
-
"language": "ts",
|
|
12250
|
-
"code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
|
|
12251
|
-
}
|
|
12252
|
-
]
|
|
12253
|
-
},
|
|
12254
|
-
"synthesize": {
|
|
12255
|
-
"description": "Synthesize speech from text, returning audio as a Buffer.",
|
|
12256
|
-
"parameters": {
|
|
12257
|
-
"text": {
|
|
12258
|
-
"type": "string",
|
|
12259
|
-
"description": "The text to convert to speech"
|
|
12260
|
-
},
|
|
12261
|
-
"options": {
|
|
12262
|
-
"type": "SynthesizeOptions",
|
|
12263
|
-
"description": "Voice, model, format, and voice settings overrides",
|
|
12264
|
-
"properties": {
|
|
12265
|
-
"voiceId": {
|
|
12266
|
-
"type": "string",
|
|
12267
|
-
"description": ""
|
|
12268
|
-
},
|
|
12269
|
-
"modelId": {
|
|
12270
|
-
"type": "string",
|
|
12271
|
-
"description": ""
|
|
12272
|
-
},
|
|
12273
|
-
"outputFormat": {
|
|
12274
|
-
"type": "string",
|
|
12275
|
-
"description": ""
|
|
12276
|
-
},
|
|
12277
|
-
"voiceSettings": {
|
|
12278
|
-
"type": "ElevenLabsVoiceSettings",
|
|
12279
|
-
"description": ""
|
|
12280
|
-
},
|
|
12281
|
-
"disableCache": {
|
|
12282
|
-
"type": "boolean",
|
|
12283
|
-
"description": ""
|
|
12284
|
-
}
|
|
12285
|
-
}
|
|
12286
|
-
}
|
|
12287
|
-
},
|
|
12288
|
-
"required": [
|
|
12289
|
-
"text"
|
|
12290
|
-
],
|
|
12291
|
-
"returns": "Promise<Buffer>",
|
|
12292
|
-
"examples": [
|
|
12293
|
-
{
|
|
12294
|
-
"language": "ts",
|
|
12295
|
-
"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})"
|
|
12296
|
-
}
|
|
12297
|
-
]
|
|
12004
|
+
"returns": "Promise<Buffer>",
|
|
12005
|
+
"examples": [
|
|
12006
|
+
{
|
|
12007
|
+
"language": "ts",
|
|
12008
|
+
"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})"
|
|
12009
|
+
}
|
|
12010
|
+
]
|
|
12298
12011
|
},
|
|
12299
12012
|
"say": {
|
|
12300
12013
|
"description": "Synthesize speech and write the audio to a file.",
|
|
@@ -12443,46 +12156,343 @@ setBuildTimeData('clients.elevenlabs', {
|
|
|
12443
12156
|
}
|
|
12444
12157
|
});
|
|
12445
12158
|
|
|
12446
|
-
setBuildTimeData('
|
|
12447
|
-
"id": "
|
|
12448
|
-
"description": "
|
|
12449
|
-
"shortcut": "
|
|
12450
|
-
"className": "
|
|
12159
|
+
setBuildTimeData('clients.comfyui', {
|
|
12160
|
+
"id": "clients.comfyui",
|
|
12161
|
+
"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.",
|
|
12162
|
+
"shortcut": "clients.comfyui",
|
|
12163
|
+
"className": "ComfyUIClient",
|
|
12451
12164
|
"methods": {
|
|
12452
|
-
"
|
|
12453
|
-
"description": "
|
|
12165
|
+
"queuePrompt": {
|
|
12166
|
+
"description": "Queue a prompt (API-format workflow) for execution.",
|
|
12454
12167
|
"parameters": {
|
|
12455
|
-
"
|
|
12456
|
-
"type": "string",
|
|
12457
|
-
"description": "
|
|
12168
|
+
"prompt": {
|
|
12169
|
+
"type": "Record<string, any>",
|
|
12170
|
+
"description": "The API-format workflow object"
|
|
12458
12171
|
},
|
|
12459
|
-
"
|
|
12460
|
-
"type": "
|
|
12461
|
-
"description": "
|
|
12462
|
-
"properties": {
|
|
12463
|
-
"schema": {
|
|
12464
|
-
"type": "z.ZodObject<any>",
|
|
12465
|
-
"description": ""
|
|
12466
|
-
},
|
|
12467
|
-
"description": {
|
|
12468
|
-
"type": "string",
|
|
12469
|
-
"description": ""
|
|
12470
|
-
},
|
|
12471
|
-
"handler": {
|
|
12472
|
-
"type": "(args: any, ctx: MCPContext) => any",
|
|
12473
|
-
"description": ""
|
|
12474
|
-
}
|
|
12475
|
-
}
|
|
12172
|
+
"clientId": {
|
|
12173
|
+
"type": "string",
|
|
12174
|
+
"description": "Override the client ID for this request"
|
|
12476
12175
|
}
|
|
12477
12176
|
},
|
|
12478
12177
|
"required": [
|
|
12479
|
-
"
|
|
12480
|
-
"options"
|
|
12178
|
+
"prompt"
|
|
12481
12179
|
],
|
|
12482
|
-
"returns": "
|
|
12180
|
+
"returns": "Promise<{ prompt_id: string; number: number }>",
|
|
12181
|
+
"examples": [
|
|
12182
|
+
{
|
|
12183
|
+
"language": "ts",
|
|
12184
|
+
"code": "const { prompt_id } = await comfy.queuePrompt(apiWorkflow)"
|
|
12185
|
+
}
|
|
12186
|
+
]
|
|
12483
12187
|
},
|
|
12484
|
-
"
|
|
12485
|
-
"description": "
|
|
12188
|
+
"getQueue": {
|
|
12189
|
+
"description": "Get the current prompt queue status.",
|
|
12190
|
+
"parameters": {},
|
|
12191
|
+
"required": [],
|
|
12192
|
+
"returns": "Promise<{ queue_running: any[]; queue_pending: any[] }>"
|
|
12193
|
+
},
|
|
12194
|
+
"getHistory": {
|
|
12195
|
+
"description": "Get execution history, optionally for a specific prompt.",
|
|
12196
|
+
"parameters": {
|
|
12197
|
+
"promptId": {
|
|
12198
|
+
"type": "string",
|
|
12199
|
+
"description": "If provided, returns history for this prompt only"
|
|
12200
|
+
}
|
|
12201
|
+
},
|
|
12202
|
+
"required": [],
|
|
12203
|
+
"returns": "Promise<Record<string, any>>"
|
|
12204
|
+
},
|
|
12205
|
+
"getSystemStats": {
|
|
12206
|
+
"description": "Get system stats including GPU memory and queue info.",
|
|
12207
|
+
"parameters": {},
|
|
12208
|
+
"required": [],
|
|
12209
|
+
"returns": "Promise<any>"
|
|
12210
|
+
},
|
|
12211
|
+
"getObjectInfo": {
|
|
12212
|
+
"description": "Get node type info with input/output schemas.",
|
|
12213
|
+
"parameters": {
|
|
12214
|
+
"nodeClass": {
|
|
12215
|
+
"type": "string",
|
|
12216
|
+
"description": "If provided, returns info for this node type only"
|
|
12217
|
+
}
|
|
12218
|
+
},
|
|
12219
|
+
"required": [],
|
|
12220
|
+
"returns": "Promise<any>"
|
|
12221
|
+
},
|
|
12222
|
+
"interrupt": {
|
|
12223
|
+
"description": "Interrupt the currently executing prompt.",
|
|
12224
|
+
"parameters": {},
|
|
12225
|
+
"required": [],
|
|
12226
|
+
"returns": "Promise<void>"
|
|
12227
|
+
},
|
|
12228
|
+
"getModels": {
|
|
12229
|
+
"description": "List available models, optionally filtered by type.",
|
|
12230
|
+
"parameters": {
|
|
12231
|
+
"type": {
|
|
12232
|
+
"type": "string",
|
|
12233
|
+
"description": "Model type filter (e.g., 'checkpoints', 'loras')"
|
|
12234
|
+
}
|
|
12235
|
+
},
|
|
12236
|
+
"required": [],
|
|
12237
|
+
"returns": "Promise<string[]>"
|
|
12238
|
+
},
|
|
12239
|
+
"getEmbeddings": {
|
|
12240
|
+
"description": "List available embedding models.",
|
|
12241
|
+
"parameters": {},
|
|
12242
|
+
"required": [],
|
|
12243
|
+
"returns": "Promise<string[]>"
|
|
12244
|
+
},
|
|
12245
|
+
"uploadImage": {
|
|
12246
|
+
"description": "Upload an image to ComfyUI's input directory.",
|
|
12247
|
+
"parameters": {
|
|
12248
|
+
"file": {
|
|
12249
|
+
"type": "Buffer | Blob",
|
|
12250
|
+
"description": "The image data as Buffer or Blob"
|
|
12251
|
+
},
|
|
12252
|
+
"filename": {
|
|
12253
|
+
"type": "string",
|
|
12254
|
+
"description": "File name for the upload"
|
|
12255
|
+
},
|
|
12256
|
+
"opts": {
|
|
12257
|
+
"type": "{ subfolder?: string; type?: string; overwrite?: boolean }",
|
|
12258
|
+
"description": "Upload options (subfolder, type, overwrite)"
|
|
12259
|
+
}
|
|
12260
|
+
},
|
|
12261
|
+
"required": [
|
|
12262
|
+
"file",
|
|
12263
|
+
"filename"
|
|
12264
|
+
],
|
|
12265
|
+
"returns": "Promise<any>"
|
|
12266
|
+
},
|
|
12267
|
+
"viewImage": {
|
|
12268
|
+
"description": "Download a generated image from ComfyUI as a Buffer.",
|
|
12269
|
+
"parameters": {
|
|
12270
|
+
"filename": {
|
|
12271
|
+
"type": "string",
|
|
12272
|
+
"description": "The image filename"
|
|
12273
|
+
},
|
|
12274
|
+
"subfolder": {
|
|
12275
|
+
"type": "any",
|
|
12276
|
+
"description": "Subfolder within the output directory"
|
|
12277
|
+
},
|
|
12278
|
+
"type": {
|
|
12279
|
+
"type": "any",
|
|
12280
|
+
"description": "Image type ('output', 'input', 'temp')"
|
|
12281
|
+
}
|
|
12282
|
+
},
|
|
12283
|
+
"required": [
|
|
12284
|
+
"filename"
|
|
12285
|
+
],
|
|
12286
|
+
"returns": "Promise<Buffer>"
|
|
12287
|
+
},
|
|
12288
|
+
"connectWs": {
|
|
12289
|
+
"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`.",
|
|
12290
|
+
"parameters": {},
|
|
12291
|
+
"required": [],
|
|
12292
|
+
"returns": "Promise<void>"
|
|
12293
|
+
},
|
|
12294
|
+
"disconnectWs": {
|
|
12295
|
+
"description": "Close the WebSocket connection.",
|
|
12296
|
+
"parameters": {},
|
|
12297
|
+
"required": [],
|
|
12298
|
+
"returns": "void"
|
|
12299
|
+
},
|
|
12300
|
+
"toApiFormat": {
|
|
12301
|
+
"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.",
|
|
12302
|
+
"parameters": {
|
|
12303
|
+
"workflow": {
|
|
12304
|
+
"type": "Record<string, any>",
|
|
12305
|
+
"description": "Parameter workflow"
|
|
12306
|
+
}
|
|
12307
|
+
},
|
|
12308
|
+
"required": [
|
|
12309
|
+
"workflow"
|
|
12310
|
+
],
|
|
12311
|
+
"returns": "Promise<Record<string, any>>"
|
|
12312
|
+
},
|
|
12313
|
+
"runWorkflow": {
|
|
12314
|
+
"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' } } ```",
|
|
12315
|
+
"parameters": {
|
|
12316
|
+
"workflow": {
|
|
12317
|
+
"type": "Record<string, any>",
|
|
12318
|
+
"description": "Parameter workflow"
|
|
12319
|
+
},
|
|
12320
|
+
"inputs": {
|
|
12321
|
+
"type": "Record<string, any>",
|
|
12322
|
+
"description": "Parameter inputs"
|
|
12323
|
+
},
|
|
12324
|
+
"options": {
|
|
12325
|
+
"type": "WorkflowRunOptions",
|
|
12326
|
+
"description": "Parameter options",
|
|
12327
|
+
"properties": {
|
|
12328
|
+
"poll": {
|
|
12329
|
+
"type": "boolean",
|
|
12330
|
+
"description": "Use polling instead of WebSocket for tracking execution"
|
|
12331
|
+
},
|
|
12332
|
+
"pollInterval": {
|
|
12333
|
+
"type": "number",
|
|
12334
|
+
"description": "Polling interval in ms (default 1000)"
|
|
12335
|
+
},
|
|
12336
|
+
"inputMap": {
|
|
12337
|
+
"type": "InputMapping",
|
|
12338
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }"
|
|
12339
|
+
},
|
|
12340
|
+
"outputDir": {
|
|
12341
|
+
"type": "string",
|
|
12342
|
+
"description": "If provided, output images are downloaded to this directory"
|
|
12343
|
+
}
|
|
12344
|
+
}
|
|
12345
|
+
}
|
|
12346
|
+
},
|
|
12347
|
+
"required": [
|
|
12348
|
+
"workflow"
|
|
12349
|
+
],
|
|
12350
|
+
"returns": "Promise<WorkflowResult>"
|
|
12351
|
+
}
|
|
12352
|
+
},
|
|
12353
|
+
"getters": {
|
|
12354
|
+
"clientId": {
|
|
12355
|
+
"description": "The unique client ID used for WebSocket session tracking.",
|
|
12356
|
+
"returns": "string"
|
|
12357
|
+
},
|
|
12358
|
+
"wsURL": {
|
|
12359
|
+
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
12360
|
+
"returns": "string"
|
|
12361
|
+
}
|
|
12362
|
+
},
|
|
12363
|
+
"events": {
|
|
12364
|
+
"execution_start": {
|
|
12365
|
+
"name": "execution_start",
|
|
12366
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12367
|
+
"arguments": {}
|
|
12368
|
+
},
|
|
12369
|
+
"execution_complete": {
|
|
12370
|
+
"name": "execution_complete",
|
|
12371
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12372
|
+
"arguments": {}
|
|
12373
|
+
},
|
|
12374
|
+
"executing": {
|
|
12375
|
+
"name": "executing",
|
|
12376
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12377
|
+
"arguments": {}
|
|
12378
|
+
},
|
|
12379
|
+
"progress": {
|
|
12380
|
+
"name": "progress",
|
|
12381
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12382
|
+
"arguments": {}
|
|
12383
|
+
},
|
|
12384
|
+
"executed": {
|
|
12385
|
+
"name": "executed",
|
|
12386
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12387
|
+
"arguments": {}
|
|
12388
|
+
},
|
|
12389
|
+
"execution_cached": {
|
|
12390
|
+
"name": "execution_cached",
|
|
12391
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12392
|
+
"arguments": {}
|
|
12393
|
+
},
|
|
12394
|
+
"execution_error": {
|
|
12395
|
+
"name": "execution_error",
|
|
12396
|
+
"description": "Event emitted by ComfyUIClient",
|
|
12397
|
+
"arguments": {}
|
|
12398
|
+
}
|
|
12399
|
+
},
|
|
12400
|
+
"state": {},
|
|
12401
|
+
"options": {},
|
|
12402
|
+
"envVars": [],
|
|
12403
|
+
"examples": [
|
|
12404
|
+
{
|
|
12405
|
+
"language": "ts",
|
|
12406
|
+
"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)"
|
|
12407
|
+
}
|
|
12408
|
+
],
|
|
12409
|
+
"types": {
|
|
12410
|
+
"WorkflowRunOptions": {
|
|
12411
|
+
"description": "",
|
|
12412
|
+
"properties": {
|
|
12413
|
+
"poll": {
|
|
12414
|
+
"type": "boolean",
|
|
12415
|
+
"description": "Use polling instead of WebSocket for tracking execution",
|
|
12416
|
+
"optional": true
|
|
12417
|
+
},
|
|
12418
|
+
"pollInterval": {
|
|
12419
|
+
"type": "number",
|
|
12420
|
+
"description": "Polling interval in ms (default 1000)",
|
|
12421
|
+
"optional": true
|
|
12422
|
+
},
|
|
12423
|
+
"inputMap": {
|
|
12424
|
+
"type": "InputMapping",
|
|
12425
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }",
|
|
12426
|
+
"optional": true
|
|
12427
|
+
},
|
|
12428
|
+
"outputDir": {
|
|
12429
|
+
"type": "string",
|
|
12430
|
+
"description": "If provided, output images are downloaded to this directory",
|
|
12431
|
+
"optional": true
|
|
12432
|
+
}
|
|
12433
|
+
}
|
|
12434
|
+
},
|
|
12435
|
+
"WorkflowResult": {
|
|
12436
|
+
"description": "",
|
|
12437
|
+
"properties": {
|
|
12438
|
+
"promptId": {
|
|
12439
|
+
"type": "string",
|
|
12440
|
+
"description": ""
|
|
12441
|
+
},
|
|
12442
|
+
"outputs": {
|
|
12443
|
+
"type": "Record<string, any>",
|
|
12444
|
+
"description": ""
|
|
12445
|
+
},
|
|
12446
|
+
"images": {
|
|
12447
|
+
"type": "Array<{ filename: string; subfolder: string; type: string; localPath?: string }>",
|
|
12448
|
+
"description": "",
|
|
12449
|
+
"optional": true
|
|
12450
|
+
}
|
|
12451
|
+
}
|
|
12452
|
+
}
|
|
12453
|
+
}
|
|
12454
|
+
});
|
|
12455
|
+
|
|
12456
|
+
setBuildTimeData('servers.mcp', {
|
|
12457
|
+
"id": "servers.mcp",
|
|
12458
|
+
"description": "MCP (Model Context Protocol) server for exposing tools, resources, and prompts to AI clients like Claude Code. Uses the low-level MCP SDK Server class directly with Zod 4 native JSON Schema conversion. Register tools, resources, and prompts programmatically, then start the server over stdio (for CLI integration) or HTTP (for remote access).",
|
|
12459
|
+
"shortcut": "servers.mcp",
|
|
12460
|
+
"className": "MCPServer",
|
|
12461
|
+
"methods": {
|
|
12462
|
+
"tool": {
|
|
12463
|
+
"description": "Register an MCP tool. The tool's Zod schema is converted to JSON Schema for the protocol listing, and used for runtime argument validation. Tool handlers can return a string (auto-wrapped as text content) or a full CallToolResult object for advanced responses (images, errors, etc).",
|
|
12464
|
+
"parameters": {
|
|
12465
|
+
"name": {
|
|
12466
|
+
"type": "string",
|
|
12467
|
+
"description": "Unique tool name"
|
|
12468
|
+
},
|
|
12469
|
+
"options": {
|
|
12470
|
+
"type": "ToolRegistrationOptions",
|
|
12471
|
+
"description": "Tool schema, description, and handler",
|
|
12472
|
+
"properties": {
|
|
12473
|
+
"schema": {
|
|
12474
|
+
"type": "z.ZodObject<any>",
|
|
12475
|
+
"description": ""
|
|
12476
|
+
},
|
|
12477
|
+
"description": {
|
|
12478
|
+
"type": "string",
|
|
12479
|
+
"description": ""
|
|
12480
|
+
},
|
|
12481
|
+
"handler": {
|
|
12482
|
+
"type": "(args: any, ctx: MCPContext) => any",
|
|
12483
|
+
"description": ""
|
|
12484
|
+
}
|
|
12485
|
+
}
|
|
12486
|
+
}
|
|
12487
|
+
},
|
|
12488
|
+
"required": [
|
|
12489
|
+
"name",
|
|
12490
|
+
"options"
|
|
12491
|
+
],
|
|
12492
|
+
"returns": "this"
|
|
12493
|
+
},
|
|
12494
|
+
"resource": {
|
|
12495
|
+
"description": "Register an MCP resource. Resources expose data (files, configs, etc) that AI clients can read by URI. Accepts either a handler function directly or an options object with additional metadata (name, description, mimeType).",
|
|
12486
12496
|
"parameters": {
|
|
12487
12497
|
"uri": {
|
|
12488
12498
|
"type": "string",
|
|
@@ -12749,6 +12759,19 @@ setBuildTimeData('servers.express', {
|
|
|
12749
12759
|
],
|
|
12750
12760
|
"returns": "Promise<this>"
|
|
12751
12761
|
},
|
|
12762
|
+
"reloadEndpoint": {
|
|
12763
|
+
"description": "Reload a mounted endpoint by its file path. Re-reads the module through the helpers VM loader so the next request picks up the new handlers.",
|
|
12764
|
+
"parameters": {
|
|
12765
|
+
"filePath": {
|
|
12766
|
+
"type": "string",
|
|
12767
|
+
"description": "Absolute path to the endpoint file"
|
|
12768
|
+
}
|
|
12769
|
+
},
|
|
12770
|
+
"required": [
|
|
12771
|
+
"filePath"
|
|
12772
|
+
],
|
|
12773
|
+
"returns": "Promise<Endpoint | null>"
|
|
12774
|
+
},
|
|
12752
12775
|
"useEndpointModules": {
|
|
12753
12776
|
"description": "",
|
|
12754
12777
|
"parameters": {
|
|
@@ -14939,7 +14962,13 @@ setBuildTimeData('features.assistant', {
|
|
|
14939
14962
|
"description": "Delete all history for this assistant+project.",
|
|
14940
14963
|
"parameters": {},
|
|
14941
14964
|
"required": [],
|
|
14942
|
-
"returns": "Promise<number>"
|
|
14965
|
+
"returns": "Promise<number>"
|
|
14966
|
+
},
|
|
14967
|
+
"reload": {
|
|
14968
|
+
"description": "Reload tools, hooks, and system prompt from disk. Useful during development or when tool/hook files have been modified and you want the assistant to pick up changes without restarting.",
|
|
14969
|
+
"parameters": {},
|
|
14970
|
+
"required": [],
|
|
14971
|
+
"returns": "this"
|
|
14943
14972
|
},
|
|
14944
14973
|
"start": {
|
|
14945
14974
|
"description": "Start the assistant by creating the conversation and wiring up events. The system prompt, tools, and hooks are already loaded synchronously during initialization.",
|
|
@@ -15128,6 +15157,11 @@ setBuildTimeData('features.assistant', {
|
|
|
15128
15157
|
"description": "Event emitted by Assistant",
|
|
15129
15158
|
"arguments": {}
|
|
15130
15159
|
},
|
|
15160
|
+
"reloaded": {
|
|
15161
|
+
"name": "reloaded",
|
|
15162
|
+
"description": "Event emitted by Assistant",
|
|
15163
|
+
"arguments": {}
|
|
15164
|
+
},
|
|
15131
15165
|
"turnStart": {
|
|
15132
15166
|
"name": "turnStart",
|
|
15133
15167
|
"description": "Event emitted by Assistant",
|
|
@@ -27880,6 +27914,16 @@ export const introspectionData = [
|
|
|
27880
27914
|
"absPath": {
|
|
27881
27915
|
"type": "string",
|
|
27882
27916
|
"description": "Absolute path to the module file"
|
|
27917
|
+
},
|
|
27918
|
+
"options": {
|
|
27919
|
+
"type": "{ cacheBust?: boolean }",
|
|
27920
|
+
"description": "Optional settings",
|
|
27921
|
+
"properties": {
|
|
27922
|
+
"cacheBust": {
|
|
27923
|
+
"type": "any",
|
|
27924
|
+
"description": "When true, appends a timestamp query to bypass the native import cache (useful for hot reload)"
|
|
27925
|
+
}
|
|
27926
|
+
}
|
|
27883
27927
|
}
|
|
27884
27928
|
},
|
|
27885
27929
|
"required": [
|
|
@@ -29326,7 +29370,270 @@ export const introspectionData = [
|
|
|
29326
29370
|
"language": "ts",
|
|
29327
29371
|
"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})"
|
|
29328
29372
|
}
|
|
29329
|
-
]
|
|
29373
|
+
]
|
|
29374
|
+
},
|
|
29375
|
+
{
|
|
29376
|
+
"id": "clients.elevenlabs",
|
|
29377
|
+
"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.",
|
|
29378
|
+
"shortcut": "clients.elevenlabs",
|
|
29379
|
+
"className": "ElevenLabsClient",
|
|
29380
|
+
"methods": {
|
|
29381
|
+
"beforeRequest": {
|
|
29382
|
+
"description": "Inject the xi-api-key header before each request.",
|
|
29383
|
+
"parameters": {},
|
|
29384
|
+
"required": [],
|
|
29385
|
+
"returns": "void"
|
|
29386
|
+
},
|
|
29387
|
+
"connect": {
|
|
29388
|
+
"description": "Validate the API key by listing available models.",
|
|
29389
|
+
"parameters": {},
|
|
29390
|
+
"required": [],
|
|
29391
|
+
"returns": "Promise<this>",
|
|
29392
|
+
"examples": [
|
|
29393
|
+
{
|
|
29394
|
+
"language": "ts",
|
|
29395
|
+
"code": "await el.connect()"
|
|
29396
|
+
}
|
|
29397
|
+
]
|
|
29398
|
+
},
|
|
29399
|
+
"listVoices": {
|
|
29400
|
+
"description": "List available voices with optional search and filtering.",
|
|
29401
|
+
"parameters": {
|
|
29402
|
+
"options": {
|
|
29403
|
+
"type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
|
|
29404
|
+
"description": "Query parameters for filtering voices"
|
|
29405
|
+
}
|
|
29406
|
+
},
|
|
29407
|
+
"required": [],
|
|
29408
|
+
"returns": "Promise<any>",
|
|
29409
|
+
"examples": [
|
|
29410
|
+
{
|
|
29411
|
+
"language": "ts",
|
|
29412
|
+
"code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
|
|
29413
|
+
}
|
|
29414
|
+
]
|
|
29415
|
+
},
|
|
29416
|
+
"getVoice": {
|
|
29417
|
+
"description": "Get details for a single voice.",
|
|
29418
|
+
"parameters": {
|
|
29419
|
+
"voiceId": {
|
|
29420
|
+
"type": "string",
|
|
29421
|
+
"description": "The voice ID to look up"
|
|
29422
|
+
}
|
|
29423
|
+
},
|
|
29424
|
+
"required": [
|
|
29425
|
+
"voiceId"
|
|
29426
|
+
],
|
|
29427
|
+
"returns": "Promise<any>",
|
|
29428
|
+
"examples": [
|
|
29429
|
+
{
|
|
29430
|
+
"language": "ts",
|
|
29431
|
+
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
29432
|
+
}
|
|
29433
|
+
]
|
|
29434
|
+
},
|
|
29435
|
+
"listModels": {
|
|
29436
|
+
"description": "List available TTS models.",
|
|
29437
|
+
"parameters": {},
|
|
29438
|
+
"required": [],
|
|
29439
|
+
"returns": "Promise<any[]>",
|
|
29440
|
+
"examples": [
|
|
29441
|
+
{
|
|
29442
|
+
"language": "ts",
|
|
29443
|
+
"code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
|
|
29444
|
+
}
|
|
29445
|
+
]
|
|
29446
|
+
},
|
|
29447
|
+
"synthesize": {
|
|
29448
|
+
"description": "Synthesize speech from text, returning audio as a Buffer.",
|
|
29449
|
+
"parameters": {
|
|
29450
|
+
"text": {
|
|
29451
|
+
"type": "string",
|
|
29452
|
+
"description": "The text to convert to speech"
|
|
29453
|
+
},
|
|
29454
|
+
"options": {
|
|
29455
|
+
"type": "SynthesizeOptions",
|
|
29456
|
+
"description": "Voice, model, format, and voice settings overrides",
|
|
29457
|
+
"properties": {
|
|
29458
|
+
"voiceId": {
|
|
29459
|
+
"type": "string",
|
|
29460
|
+
"description": ""
|
|
29461
|
+
},
|
|
29462
|
+
"modelId": {
|
|
29463
|
+
"type": "string",
|
|
29464
|
+
"description": ""
|
|
29465
|
+
},
|
|
29466
|
+
"outputFormat": {
|
|
29467
|
+
"type": "string",
|
|
29468
|
+
"description": ""
|
|
29469
|
+
},
|
|
29470
|
+
"voiceSettings": {
|
|
29471
|
+
"type": "ElevenLabsVoiceSettings",
|
|
29472
|
+
"description": ""
|
|
29473
|
+
},
|
|
29474
|
+
"disableCache": {
|
|
29475
|
+
"type": "boolean",
|
|
29476
|
+
"description": ""
|
|
29477
|
+
}
|
|
29478
|
+
}
|
|
29479
|
+
}
|
|
29480
|
+
},
|
|
29481
|
+
"required": [
|
|
29482
|
+
"text"
|
|
29483
|
+
],
|
|
29484
|
+
"returns": "Promise<Buffer>",
|
|
29485
|
+
"examples": [
|
|
29486
|
+
{
|
|
29487
|
+
"language": "ts",
|
|
29488
|
+
"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})"
|
|
29489
|
+
}
|
|
29490
|
+
]
|
|
29491
|
+
},
|
|
29492
|
+
"say": {
|
|
29493
|
+
"description": "Synthesize speech and write the audio to a file.",
|
|
29494
|
+
"parameters": {
|
|
29495
|
+
"text": {
|
|
29496
|
+
"type": "string",
|
|
29497
|
+
"description": "The text to convert to speech"
|
|
29498
|
+
},
|
|
29499
|
+
"outputPath": {
|
|
29500
|
+
"type": "string",
|
|
29501
|
+
"description": "File path to write the audio to"
|
|
29502
|
+
},
|
|
29503
|
+
"options": {
|
|
29504
|
+
"type": "SynthesizeOptions",
|
|
29505
|
+
"description": "Voice, model, format, and voice settings overrides",
|
|
29506
|
+
"properties": {
|
|
29507
|
+
"voiceId": {
|
|
29508
|
+
"type": "string",
|
|
29509
|
+
"description": ""
|
|
29510
|
+
},
|
|
29511
|
+
"modelId": {
|
|
29512
|
+
"type": "string",
|
|
29513
|
+
"description": ""
|
|
29514
|
+
},
|
|
29515
|
+
"outputFormat": {
|
|
29516
|
+
"type": "string",
|
|
29517
|
+
"description": ""
|
|
29518
|
+
},
|
|
29519
|
+
"voiceSettings": {
|
|
29520
|
+
"type": "ElevenLabsVoiceSettings",
|
|
29521
|
+
"description": ""
|
|
29522
|
+
},
|
|
29523
|
+
"disableCache": {
|
|
29524
|
+
"type": "boolean",
|
|
29525
|
+
"description": ""
|
|
29526
|
+
}
|
|
29527
|
+
}
|
|
29528
|
+
}
|
|
29529
|
+
},
|
|
29530
|
+
"required": [
|
|
29531
|
+
"text",
|
|
29532
|
+
"outputPath"
|
|
29533
|
+
],
|
|
29534
|
+
"returns": "Promise<string>",
|
|
29535
|
+
"examples": [
|
|
29536
|
+
{
|
|
29537
|
+
"language": "ts",
|
|
29538
|
+
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
29539
|
+
}
|
|
29540
|
+
]
|
|
29541
|
+
}
|
|
29542
|
+
},
|
|
29543
|
+
"getters": {
|
|
29544
|
+
"apiKey": {
|
|
29545
|
+
"description": "The resolved API key from options or environment.",
|
|
29546
|
+
"returns": "string"
|
|
29547
|
+
}
|
|
29548
|
+
},
|
|
29549
|
+
"events": {
|
|
29550
|
+
"failure": {
|
|
29551
|
+
"name": "failure",
|
|
29552
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
29553
|
+
"arguments": {}
|
|
29554
|
+
},
|
|
29555
|
+
"voices": {
|
|
29556
|
+
"name": "voices",
|
|
29557
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
29558
|
+
"arguments": {}
|
|
29559
|
+
},
|
|
29560
|
+
"speech": {
|
|
29561
|
+
"name": "speech",
|
|
29562
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
29563
|
+
"arguments": {}
|
|
29564
|
+
}
|
|
29565
|
+
},
|
|
29566
|
+
"state": {},
|
|
29567
|
+
"options": {},
|
|
29568
|
+
"envVars": [],
|
|
29569
|
+
"examples": [
|
|
29570
|
+
{
|
|
29571
|
+
"language": "ts",
|
|
29572
|
+
"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"
|
|
29573
|
+
}
|
|
29574
|
+
],
|
|
29575
|
+
"types": {
|
|
29576
|
+
"SynthesizeOptions": {
|
|
29577
|
+
"description": "",
|
|
29578
|
+
"properties": {
|
|
29579
|
+
"voiceId": {
|
|
29580
|
+
"type": "string",
|
|
29581
|
+
"description": "",
|
|
29582
|
+
"optional": true
|
|
29583
|
+
},
|
|
29584
|
+
"modelId": {
|
|
29585
|
+
"type": "string",
|
|
29586
|
+
"description": "",
|
|
29587
|
+
"optional": true
|
|
29588
|
+
},
|
|
29589
|
+
"outputFormat": {
|
|
29590
|
+
"type": "string",
|
|
29591
|
+
"description": "",
|
|
29592
|
+
"optional": true
|
|
29593
|
+
},
|
|
29594
|
+
"voiceSettings": {
|
|
29595
|
+
"type": "ElevenLabsVoiceSettings",
|
|
29596
|
+
"description": "",
|
|
29597
|
+
"optional": true
|
|
29598
|
+
},
|
|
29599
|
+
"disableCache": {
|
|
29600
|
+
"type": "boolean",
|
|
29601
|
+
"description": "",
|
|
29602
|
+
"optional": true
|
|
29603
|
+
}
|
|
29604
|
+
}
|
|
29605
|
+
},
|
|
29606
|
+
"ElevenLabsVoiceSettings": {
|
|
29607
|
+
"description": "",
|
|
29608
|
+
"properties": {
|
|
29609
|
+
"stability": {
|
|
29610
|
+
"type": "number",
|
|
29611
|
+
"description": "",
|
|
29612
|
+
"optional": true
|
|
29613
|
+
},
|
|
29614
|
+
"similarityBoost": {
|
|
29615
|
+
"type": "number",
|
|
29616
|
+
"description": "",
|
|
29617
|
+
"optional": true
|
|
29618
|
+
},
|
|
29619
|
+
"style": {
|
|
29620
|
+
"type": "number",
|
|
29621
|
+
"description": "",
|
|
29622
|
+
"optional": true
|
|
29623
|
+
},
|
|
29624
|
+
"speed": {
|
|
29625
|
+
"type": "number",
|
|
29626
|
+
"description": "",
|
|
29627
|
+
"optional": true
|
|
29628
|
+
},
|
|
29629
|
+
"useSpeakerBoost": {
|
|
29630
|
+
"type": "boolean",
|
|
29631
|
+
"description": "",
|
|
29632
|
+
"optional": true
|
|
29633
|
+
}
|
|
29634
|
+
}
|
|
29635
|
+
}
|
|
29636
|
+
}
|
|
29330
29637
|
},
|
|
29331
29638
|
{
|
|
29332
29639
|
"id": "clients.comfyui",
|
|
@@ -29451,367 +29758,121 @@ export const introspectionData = [
|
|
|
29451
29758
|
"type": "any",
|
|
29452
29759
|
"description": "Image type ('output', 'input', 'temp')"
|
|
29453
29760
|
}
|
|
29454
|
-
},
|
|
29455
|
-
"required": [
|
|
29456
|
-
"filename"
|
|
29457
|
-
],
|
|
29458
|
-
"returns": "Promise<Buffer>"
|
|
29459
|
-
},
|
|
29460
|
-
"connectWs": {
|
|
29461
|
-
"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`.",
|
|
29462
|
-
"parameters": {},
|
|
29463
|
-
"required": [],
|
|
29464
|
-
"returns": "Promise<void>"
|
|
29465
|
-
},
|
|
29466
|
-
"disconnectWs": {
|
|
29467
|
-
"description": "Close the WebSocket connection.",
|
|
29468
|
-
"parameters": {},
|
|
29469
|
-
"required": [],
|
|
29470
|
-
"returns": "void"
|
|
29471
|
-
},
|
|
29472
|
-
"toApiFormat": {
|
|
29473
|
-
"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.",
|
|
29474
|
-
"parameters": {
|
|
29475
|
-
"workflow": {
|
|
29476
|
-
"type": "Record<string, any>",
|
|
29477
|
-
"description": "Parameter workflow"
|
|
29478
|
-
}
|
|
29479
|
-
},
|
|
29480
|
-
"required": [
|
|
29481
|
-
"workflow"
|
|
29482
|
-
],
|
|
29483
|
-
"returns": "Promise<Record<string, any>>"
|
|
29484
|
-
},
|
|
29485
|
-
"runWorkflow": {
|
|
29486
|
-
"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' } } ```",
|
|
29487
|
-
"parameters": {
|
|
29488
|
-
"workflow": {
|
|
29489
|
-
"type": "Record<string, any>",
|
|
29490
|
-
"description": "Parameter workflow"
|
|
29491
|
-
},
|
|
29492
|
-
"inputs": {
|
|
29493
|
-
"type": "Record<string, any>",
|
|
29494
|
-
"description": "Parameter inputs"
|
|
29495
|
-
},
|
|
29496
|
-
"options": {
|
|
29497
|
-
"type": "WorkflowRunOptions",
|
|
29498
|
-
"description": "Parameter options",
|
|
29499
|
-
"properties": {
|
|
29500
|
-
"poll": {
|
|
29501
|
-
"type": "boolean",
|
|
29502
|
-
"description": "Use polling instead of WebSocket for tracking execution"
|
|
29503
|
-
},
|
|
29504
|
-
"pollInterval": {
|
|
29505
|
-
"type": "number",
|
|
29506
|
-
"description": "Polling interval in ms (default 1000)"
|
|
29507
|
-
},
|
|
29508
|
-
"inputMap": {
|
|
29509
|
-
"type": "InputMapping",
|
|
29510
|
-
"description": "Named input mapping: semantic name -> { nodeId, field }"
|
|
29511
|
-
},
|
|
29512
|
-
"outputDir": {
|
|
29513
|
-
"type": "string",
|
|
29514
|
-
"description": "If provided, output images are downloaded to this directory"
|
|
29515
|
-
}
|
|
29516
|
-
}
|
|
29517
|
-
}
|
|
29518
|
-
},
|
|
29519
|
-
"required": [
|
|
29520
|
-
"workflow"
|
|
29521
|
-
],
|
|
29522
|
-
"returns": "Promise<WorkflowResult>"
|
|
29523
|
-
}
|
|
29524
|
-
},
|
|
29525
|
-
"getters": {
|
|
29526
|
-
"clientId": {
|
|
29527
|
-
"description": "The unique client ID used for WebSocket session tracking.",
|
|
29528
|
-
"returns": "string"
|
|
29529
|
-
},
|
|
29530
|
-
"wsURL": {
|
|
29531
|
-
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
29532
|
-
"returns": "string"
|
|
29533
|
-
}
|
|
29534
|
-
},
|
|
29535
|
-
"events": {
|
|
29536
|
-
"execution_start": {
|
|
29537
|
-
"name": "execution_start",
|
|
29538
|
-
"description": "Event emitted by ComfyUIClient",
|
|
29539
|
-
"arguments": {}
|
|
29540
|
-
},
|
|
29541
|
-
"execution_complete": {
|
|
29542
|
-
"name": "execution_complete",
|
|
29543
|
-
"description": "Event emitted by ComfyUIClient",
|
|
29544
|
-
"arguments": {}
|
|
29545
|
-
},
|
|
29546
|
-
"executing": {
|
|
29547
|
-
"name": "executing",
|
|
29548
|
-
"description": "Event emitted by ComfyUIClient",
|
|
29549
|
-
"arguments": {}
|
|
29550
|
-
},
|
|
29551
|
-
"progress": {
|
|
29552
|
-
"name": "progress",
|
|
29553
|
-
"description": "Event emitted by ComfyUIClient",
|
|
29554
|
-
"arguments": {}
|
|
29555
|
-
},
|
|
29556
|
-
"executed": {
|
|
29557
|
-
"name": "executed",
|
|
29558
|
-
"description": "Event emitted by ComfyUIClient",
|
|
29559
|
-
"arguments": {}
|
|
29560
|
-
},
|
|
29561
|
-
"execution_cached": {
|
|
29562
|
-
"name": "execution_cached",
|
|
29563
|
-
"description": "Event emitted by ComfyUIClient",
|
|
29564
|
-
"arguments": {}
|
|
29565
|
-
},
|
|
29566
|
-
"execution_error": {
|
|
29567
|
-
"name": "execution_error",
|
|
29568
|
-
"description": "Event emitted by ComfyUIClient",
|
|
29569
|
-
"arguments": {}
|
|
29570
|
-
}
|
|
29571
|
-
},
|
|
29572
|
-
"state": {},
|
|
29573
|
-
"options": {},
|
|
29574
|
-
"envVars": [],
|
|
29575
|
-
"examples": [
|
|
29576
|
-
{
|
|
29577
|
-
"language": "ts",
|
|
29578
|
-
"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)"
|
|
29579
|
-
}
|
|
29580
|
-
],
|
|
29581
|
-
"types": {
|
|
29582
|
-
"WorkflowRunOptions": {
|
|
29583
|
-
"description": "",
|
|
29584
|
-
"properties": {
|
|
29585
|
-
"poll": {
|
|
29586
|
-
"type": "boolean",
|
|
29587
|
-
"description": "Use polling instead of WebSocket for tracking execution",
|
|
29588
|
-
"optional": true
|
|
29589
|
-
},
|
|
29590
|
-
"pollInterval": {
|
|
29591
|
-
"type": "number",
|
|
29592
|
-
"description": "Polling interval in ms (default 1000)",
|
|
29593
|
-
"optional": true
|
|
29594
|
-
},
|
|
29595
|
-
"inputMap": {
|
|
29596
|
-
"type": "InputMapping",
|
|
29597
|
-
"description": "Named input mapping: semantic name -> { nodeId, field }",
|
|
29598
|
-
"optional": true
|
|
29599
|
-
},
|
|
29600
|
-
"outputDir": {
|
|
29601
|
-
"type": "string",
|
|
29602
|
-
"description": "If provided, output images are downloaded to this directory",
|
|
29603
|
-
"optional": true
|
|
29604
|
-
}
|
|
29605
|
-
}
|
|
29606
|
-
},
|
|
29607
|
-
"WorkflowResult": {
|
|
29608
|
-
"description": "",
|
|
29609
|
-
"properties": {
|
|
29610
|
-
"promptId": {
|
|
29611
|
-
"type": "string",
|
|
29612
|
-
"description": ""
|
|
29613
|
-
},
|
|
29614
|
-
"outputs": {
|
|
29615
|
-
"type": "Record<string, any>",
|
|
29616
|
-
"description": ""
|
|
29617
|
-
},
|
|
29618
|
-
"images": {
|
|
29619
|
-
"type": "Array<{ filename: string; subfolder: string; type: string; localPath?: string }>",
|
|
29620
|
-
"description": "",
|
|
29621
|
-
"optional": true
|
|
29622
|
-
}
|
|
29623
|
-
}
|
|
29624
|
-
}
|
|
29625
|
-
}
|
|
29626
|
-
},
|
|
29627
|
-
{
|
|
29628
|
-
"id": "clients.elevenlabs",
|
|
29629
|
-
"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.",
|
|
29630
|
-
"shortcut": "clients.elevenlabs",
|
|
29631
|
-
"className": "ElevenLabsClient",
|
|
29632
|
-
"methods": {
|
|
29633
|
-
"beforeRequest": {
|
|
29634
|
-
"description": "Inject the xi-api-key header before each request.",
|
|
29635
|
-
"parameters": {},
|
|
29636
|
-
"required": [],
|
|
29637
|
-
"returns": "void"
|
|
29638
|
-
},
|
|
29639
|
-
"connect": {
|
|
29640
|
-
"description": "Validate the API key by listing available models.",
|
|
29641
|
-
"parameters": {},
|
|
29642
|
-
"required": [],
|
|
29643
|
-
"returns": "Promise<this>",
|
|
29644
|
-
"examples": [
|
|
29645
|
-
{
|
|
29646
|
-
"language": "ts",
|
|
29647
|
-
"code": "await el.connect()"
|
|
29648
|
-
}
|
|
29649
|
-
]
|
|
29650
|
-
},
|
|
29651
|
-
"listVoices": {
|
|
29652
|
-
"description": "List available voices with optional search and filtering.",
|
|
29653
|
-
"parameters": {
|
|
29654
|
-
"options": {
|
|
29655
|
-
"type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
|
|
29656
|
-
"description": "Query parameters for filtering voices"
|
|
29657
|
-
}
|
|
29658
|
-
},
|
|
29659
|
-
"required": [],
|
|
29660
|
-
"returns": "Promise<any>",
|
|
29661
|
-
"examples": [
|
|
29662
|
-
{
|
|
29663
|
-
"language": "ts",
|
|
29664
|
-
"code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
|
|
29665
|
-
}
|
|
29666
|
-
]
|
|
29667
|
-
},
|
|
29668
|
-
"getVoice": {
|
|
29669
|
-
"description": "Get details for a single voice.",
|
|
29670
|
-
"parameters": {
|
|
29671
|
-
"voiceId": {
|
|
29672
|
-
"type": "string",
|
|
29673
|
-
"description": "The voice ID to look up"
|
|
29674
|
-
}
|
|
29675
|
-
},
|
|
29676
|
-
"required": [
|
|
29677
|
-
"voiceId"
|
|
29678
|
-
],
|
|
29679
|
-
"returns": "Promise<any>",
|
|
29680
|
-
"examples": [
|
|
29681
|
-
{
|
|
29682
|
-
"language": "ts",
|
|
29683
|
-
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
29684
|
-
}
|
|
29685
|
-
]
|
|
29761
|
+
},
|
|
29762
|
+
"required": [
|
|
29763
|
+
"filename"
|
|
29764
|
+
],
|
|
29765
|
+
"returns": "Promise<Buffer>"
|
|
29686
29766
|
},
|
|
29687
|
-
"
|
|
29688
|
-
"description": "
|
|
29767
|
+
"connectWs": {
|
|
29768
|
+
"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`.",
|
|
29689
29769
|
"parameters": {},
|
|
29690
29770
|
"required": [],
|
|
29691
|
-
"returns": "Promise<
|
|
29692
|
-
"examples": [
|
|
29693
|
-
{
|
|
29694
|
-
"language": "ts",
|
|
29695
|
-
"code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
|
|
29696
|
-
}
|
|
29697
|
-
]
|
|
29771
|
+
"returns": "Promise<void>"
|
|
29698
29772
|
},
|
|
29699
|
-
"
|
|
29700
|
-
"description": "
|
|
29773
|
+
"disconnectWs": {
|
|
29774
|
+
"description": "Close the WebSocket connection.",
|
|
29775
|
+
"parameters": {},
|
|
29776
|
+
"required": [],
|
|
29777
|
+
"returns": "void"
|
|
29778
|
+
},
|
|
29779
|
+
"toApiFormat": {
|
|
29780
|
+
"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.",
|
|
29701
29781
|
"parameters": {
|
|
29702
|
-
"
|
|
29703
|
-
"type": "string",
|
|
29704
|
-
"description": "
|
|
29705
|
-
},
|
|
29706
|
-
"options": {
|
|
29707
|
-
"type": "SynthesizeOptions",
|
|
29708
|
-
"description": "Voice, model, format, and voice settings overrides",
|
|
29709
|
-
"properties": {
|
|
29710
|
-
"voiceId": {
|
|
29711
|
-
"type": "string",
|
|
29712
|
-
"description": ""
|
|
29713
|
-
},
|
|
29714
|
-
"modelId": {
|
|
29715
|
-
"type": "string",
|
|
29716
|
-
"description": ""
|
|
29717
|
-
},
|
|
29718
|
-
"outputFormat": {
|
|
29719
|
-
"type": "string",
|
|
29720
|
-
"description": ""
|
|
29721
|
-
},
|
|
29722
|
-
"voiceSettings": {
|
|
29723
|
-
"type": "ElevenLabsVoiceSettings",
|
|
29724
|
-
"description": ""
|
|
29725
|
-
},
|
|
29726
|
-
"disableCache": {
|
|
29727
|
-
"type": "boolean",
|
|
29728
|
-
"description": ""
|
|
29729
|
-
}
|
|
29730
|
-
}
|
|
29782
|
+
"workflow": {
|
|
29783
|
+
"type": "Record<string, any>",
|
|
29784
|
+
"description": "Parameter workflow"
|
|
29731
29785
|
}
|
|
29732
29786
|
},
|
|
29733
29787
|
"required": [
|
|
29734
|
-
"
|
|
29788
|
+
"workflow"
|
|
29735
29789
|
],
|
|
29736
|
-
"returns": "Promise<
|
|
29737
|
-
"examples": [
|
|
29738
|
-
{
|
|
29739
|
-
"language": "ts",
|
|
29740
|
-
"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})"
|
|
29741
|
-
}
|
|
29742
|
-
]
|
|
29790
|
+
"returns": "Promise<Record<string, any>>"
|
|
29743
29791
|
},
|
|
29744
|
-
"
|
|
29745
|
-
"description": "
|
|
29792
|
+
"runWorkflow": {
|
|
29793
|
+
"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' } } ```",
|
|
29746
29794
|
"parameters": {
|
|
29747
|
-
"
|
|
29748
|
-
"type": "string",
|
|
29749
|
-
"description": "
|
|
29795
|
+
"workflow": {
|
|
29796
|
+
"type": "Record<string, any>",
|
|
29797
|
+
"description": "Parameter workflow"
|
|
29750
29798
|
},
|
|
29751
|
-
"
|
|
29752
|
-
"type": "string",
|
|
29753
|
-
"description": "
|
|
29799
|
+
"inputs": {
|
|
29800
|
+
"type": "Record<string, any>",
|
|
29801
|
+
"description": "Parameter inputs"
|
|
29754
29802
|
},
|
|
29755
29803
|
"options": {
|
|
29756
|
-
"type": "
|
|
29757
|
-
"description": "
|
|
29804
|
+
"type": "WorkflowRunOptions",
|
|
29805
|
+
"description": "Parameter options",
|
|
29758
29806
|
"properties": {
|
|
29759
|
-
"
|
|
29760
|
-
"type": "
|
|
29761
|
-
"description": ""
|
|
29762
|
-
},
|
|
29763
|
-
"modelId": {
|
|
29764
|
-
"type": "string",
|
|
29765
|
-
"description": ""
|
|
29807
|
+
"poll": {
|
|
29808
|
+
"type": "boolean",
|
|
29809
|
+
"description": "Use polling instead of WebSocket for tracking execution"
|
|
29766
29810
|
},
|
|
29767
|
-
"
|
|
29768
|
-
"type": "
|
|
29769
|
-
"description": ""
|
|
29811
|
+
"pollInterval": {
|
|
29812
|
+
"type": "number",
|
|
29813
|
+
"description": "Polling interval in ms (default 1000)"
|
|
29770
29814
|
},
|
|
29771
|
-
"
|
|
29772
|
-
"type": "
|
|
29773
|
-
"description": ""
|
|
29815
|
+
"inputMap": {
|
|
29816
|
+
"type": "InputMapping",
|
|
29817
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }"
|
|
29774
29818
|
},
|
|
29775
|
-
"
|
|
29776
|
-
"type": "
|
|
29777
|
-
"description": ""
|
|
29819
|
+
"outputDir": {
|
|
29820
|
+
"type": "string",
|
|
29821
|
+
"description": "If provided, output images are downloaded to this directory"
|
|
29778
29822
|
}
|
|
29779
29823
|
}
|
|
29780
29824
|
}
|
|
29781
29825
|
},
|
|
29782
29826
|
"required": [
|
|
29783
|
-
"
|
|
29784
|
-
"outputPath"
|
|
29827
|
+
"workflow"
|
|
29785
29828
|
],
|
|
29786
|
-
"returns": "Promise<
|
|
29787
|
-
"examples": [
|
|
29788
|
-
{
|
|
29789
|
-
"language": "ts",
|
|
29790
|
-
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
29791
|
-
}
|
|
29792
|
-
]
|
|
29829
|
+
"returns": "Promise<WorkflowResult>"
|
|
29793
29830
|
}
|
|
29794
29831
|
},
|
|
29795
29832
|
"getters": {
|
|
29796
|
-
"
|
|
29797
|
-
"description": "The
|
|
29833
|
+
"clientId": {
|
|
29834
|
+
"description": "The unique client ID used for WebSocket session tracking.",
|
|
29835
|
+
"returns": "string"
|
|
29836
|
+
},
|
|
29837
|
+
"wsURL": {
|
|
29838
|
+
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
29798
29839
|
"returns": "string"
|
|
29799
29840
|
}
|
|
29800
29841
|
},
|
|
29801
29842
|
"events": {
|
|
29802
|
-
"
|
|
29803
|
-
"name": "
|
|
29804
|
-
"description": "Event emitted by
|
|
29843
|
+
"execution_start": {
|
|
29844
|
+
"name": "execution_start",
|
|
29845
|
+
"description": "Event emitted by ComfyUIClient",
|
|
29805
29846
|
"arguments": {}
|
|
29806
29847
|
},
|
|
29807
|
-
"
|
|
29808
|
-
"name": "
|
|
29809
|
-
"description": "Event emitted by
|
|
29848
|
+
"execution_complete": {
|
|
29849
|
+
"name": "execution_complete",
|
|
29850
|
+
"description": "Event emitted by ComfyUIClient",
|
|
29810
29851
|
"arguments": {}
|
|
29811
29852
|
},
|
|
29812
|
-
"
|
|
29813
|
-
"name": "
|
|
29814
|
-
"description": "Event emitted by
|
|
29853
|
+
"executing": {
|
|
29854
|
+
"name": "executing",
|
|
29855
|
+
"description": "Event emitted by ComfyUIClient",
|
|
29856
|
+
"arguments": {}
|
|
29857
|
+
},
|
|
29858
|
+
"progress": {
|
|
29859
|
+
"name": "progress",
|
|
29860
|
+
"description": "Event emitted by ComfyUIClient",
|
|
29861
|
+
"arguments": {}
|
|
29862
|
+
},
|
|
29863
|
+
"executed": {
|
|
29864
|
+
"name": "executed",
|
|
29865
|
+
"description": "Event emitted by ComfyUIClient",
|
|
29866
|
+
"arguments": {}
|
|
29867
|
+
},
|
|
29868
|
+
"execution_cached": {
|
|
29869
|
+
"name": "execution_cached",
|
|
29870
|
+
"description": "Event emitted by ComfyUIClient",
|
|
29871
|
+
"arguments": {}
|
|
29872
|
+
},
|
|
29873
|
+
"execution_error": {
|
|
29874
|
+
"name": "execution_error",
|
|
29875
|
+
"description": "Event emitted by ComfyUIClient",
|
|
29815
29876
|
"arguments": {}
|
|
29816
29877
|
}
|
|
29817
29878
|
},
|
|
@@ -29821,65 +29882,48 @@ export const introspectionData = [
|
|
|
29821
29882
|
"examples": [
|
|
29822
29883
|
{
|
|
29823
29884
|
"language": "ts",
|
|
29824
|
-
"code": "const
|
|
29885
|
+
"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)"
|
|
29825
29886
|
}
|
|
29826
29887
|
],
|
|
29827
29888
|
"types": {
|
|
29828
|
-
"
|
|
29889
|
+
"WorkflowRunOptions": {
|
|
29829
29890
|
"description": "",
|
|
29830
29891
|
"properties": {
|
|
29831
|
-
"
|
|
29832
|
-
"type": "
|
|
29833
|
-
"description": "",
|
|
29834
|
-
"optional": true
|
|
29835
|
-
},
|
|
29836
|
-
"modelId": {
|
|
29837
|
-
"type": "string",
|
|
29838
|
-
"description": "",
|
|
29892
|
+
"poll": {
|
|
29893
|
+
"type": "boolean",
|
|
29894
|
+
"description": "Use polling instead of WebSocket for tracking execution",
|
|
29839
29895
|
"optional": true
|
|
29840
29896
|
},
|
|
29841
|
-
"
|
|
29842
|
-
"type": "
|
|
29843
|
-
"description": "",
|
|
29897
|
+
"pollInterval": {
|
|
29898
|
+
"type": "number",
|
|
29899
|
+
"description": "Polling interval in ms (default 1000)",
|
|
29844
29900
|
"optional": true
|
|
29845
29901
|
},
|
|
29846
|
-
"
|
|
29847
|
-
"type": "
|
|
29848
|
-
"description": "",
|
|
29902
|
+
"inputMap": {
|
|
29903
|
+
"type": "InputMapping",
|
|
29904
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }",
|
|
29849
29905
|
"optional": true
|
|
29850
29906
|
},
|
|
29851
|
-
"
|
|
29852
|
-
"type": "
|
|
29853
|
-
"description": "",
|
|
29907
|
+
"outputDir": {
|
|
29908
|
+
"type": "string",
|
|
29909
|
+
"description": "If provided, output images are downloaded to this directory",
|
|
29854
29910
|
"optional": true
|
|
29855
29911
|
}
|
|
29856
29912
|
}
|
|
29857
29913
|
},
|
|
29858
|
-
"
|
|
29914
|
+
"WorkflowResult": {
|
|
29859
29915
|
"description": "",
|
|
29860
29916
|
"properties": {
|
|
29861
|
-
"
|
|
29862
|
-
"type": "
|
|
29863
|
-
"description": ""
|
|
29864
|
-
"optional": true
|
|
29865
|
-
},
|
|
29866
|
-
"similarityBoost": {
|
|
29867
|
-
"type": "number",
|
|
29868
|
-
"description": "",
|
|
29869
|
-
"optional": true
|
|
29870
|
-
},
|
|
29871
|
-
"style": {
|
|
29872
|
-
"type": "number",
|
|
29873
|
-
"description": "",
|
|
29874
|
-
"optional": true
|
|
29917
|
+
"promptId": {
|
|
29918
|
+
"type": "string",
|
|
29919
|
+
"description": ""
|
|
29875
29920
|
},
|
|
29876
|
-
"
|
|
29877
|
-
"type": "
|
|
29878
|
-
"description": ""
|
|
29879
|
-
"optional": true
|
|
29921
|
+
"outputs": {
|
|
29922
|
+
"type": "Record<string, any>",
|
|
29923
|
+
"description": ""
|
|
29880
29924
|
},
|
|
29881
|
-
"
|
|
29882
|
-
"type": "
|
|
29925
|
+
"images": {
|
|
29926
|
+
"type": "Array<{ filename: string; subfolder: string; type: string; localPath?: string }>",
|
|
29883
29927
|
"description": "",
|
|
29884
29928
|
"optional": true
|
|
29885
29929
|
}
|
|
@@ -30192,6 +30236,19 @@ export const introspectionData = [
|
|
|
30192
30236
|
],
|
|
30193
30237
|
"returns": "Promise<this>"
|
|
30194
30238
|
},
|
|
30239
|
+
"reloadEndpoint": {
|
|
30240
|
+
"description": "Reload a mounted endpoint by its file path. Re-reads the module through the helpers VM loader so the next request picks up the new handlers.",
|
|
30241
|
+
"parameters": {
|
|
30242
|
+
"filePath": {
|
|
30243
|
+
"type": "string",
|
|
30244
|
+
"description": "Absolute path to the endpoint file"
|
|
30245
|
+
}
|
|
30246
|
+
},
|
|
30247
|
+
"required": [
|
|
30248
|
+
"filePath"
|
|
30249
|
+
],
|
|
30250
|
+
"returns": "Promise<Endpoint | null>"
|
|
30251
|
+
},
|
|
30195
30252
|
"useEndpointModules": {
|
|
30196
30253
|
"description": "",
|
|
30197
30254
|
"parameters": {
|
|
@@ -32376,6 +32433,12 @@ export const introspectionData = [
|
|
|
32376
32433
|
"required": [],
|
|
32377
32434
|
"returns": "Promise<number>"
|
|
32378
32435
|
},
|
|
32436
|
+
"reload": {
|
|
32437
|
+
"description": "Reload tools, hooks, and system prompt from disk. Useful during development or when tool/hook files have been modified and you want the assistant to pick up changes without restarting.",
|
|
32438
|
+
"parameters": {},
|
|
32439
|
+
"required": [],
|
|
32440
|
+
"returns": "this"
|
|
32441
|
+
},
|
|
32379
32442
|
"start": {
|
|
32380
32443
|
"description": "Start the assistant by creating the conversation and wiring up events. The system prompt, tools, and hooks are already loaded synchronously during initialization.",
|
|
32381
32444
|
"parameters": {},
|
|
@@ -32563,6 +32626,11 @@ export const introspectionData = [
|
|
|
32563
32626
|
"description": "Event emitted by Assistant",
|
|
32564
32627
|
"arguments": {}
|
|
32565
32628
|
},
|
|
32629
|
+
"reloaded": {
|
|
32630
|
+
"name": "reloaded",
|
|
32631
|
+
"description": "Event emitted by Assistant",
|
|
32632
|
+
"arguments": {}
|
|
32633
|
+
},
|
|
32566
32634
|
"turnStart": {
|
|
32567
32635
|
"name": "turnStart",
|
|
32568
32636
|
"description": "Event emitted by Assistant",
|