@soederpop/luca 0.2.2 → 0.2.3
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/assistants/codingAssistant/ABOUT.md +3 -1
- package/assistants/codingAssistant/CORE.md +2 -4
- package/assistants/codingAssistant/hooks.ts +9 -10
- package/assistants/codingAssistant/tools.ts +9 -0
- package/assistants/inkbot/ABOUT.md +13 -2
- package/assistants/inkbot/CORE.md +278 -39
- package/assistants/inkbot/hooks.ts +0 -8
- package/assistants/inkbot/tools.ts +24 -18
- package/assistants/researcher/ABOUT.md +5 -0
- package/assistants/researcher/CORE.md +46 -0
- package/assistants/researcher/hooks.ts +16 -0
- package/assistants/researcher/tools.ts +237 -0
- package/commands/inkbot.ts +526 -194
- package/docs/examples/assistant-hooks-reference.ts +171 -0
- package/package.json +1 -1
- package/public/slides-ai-native.html +902 -0
- package/public/slides-intro.html +974 -0
- package/src/agi/features/assistant.ts +432 -62
- package/src/agi/features/conversation.ts +170 -10
- package/src/bootstrap/generated.ts +1 -1
- package/src/cli/build-info.ts +2 -2
- package/src/helper.ts +12 -3
- package/src/introspection/generated.agi.ts +1105 -873
- package/src/introspection/generated.node.ts +757 -757
- package/src/introspection/generated.web.ts +1 -1
- package/src/python/generated.ts +1 -1
- package/src/scaffolds/generated.ts +1 -1
- package/test/assistant-hooks.test.ts +306 -0
- package/test/assistant.test.ts +1 -1
- package/test/fork-and-research.test.ts +450 -0
- package/SPEC.md +0 -304
|
@@ -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-04-
|
|
4
|
+
// Generated at: 2026-04-09T05:21:42.343Z
|
|
5
5
|
|
|
6
6
|
setBuildTimeData('features.googleDocs', {
|
|
7
7
|
"id": "features.googleDocs",
|
|
@@ -12712,244 +12712,194 @@ setBuildTimeData('clients.supabase', {
|
|
|
12712
12712
|
]
|
|
12713
12713
|
});
|
|
12714
12714
|
|
|
12715
|
-
setBuildTimeData('clients.
|
|
12716
|
-
"id": "clients.
|
|
12717
|
-
"description": "
|
|
12718
|
-
"shortcut": "clients.
|
|
12719
|
-
"className": "
|
|
12715
|
+
setBuildTimeData('clients.elevenlabs', {
|
|
12716
|
+
"id": "clients.elevenlabs",
|
|
12717
|
+
"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.",
|
|
12718
|
+
"shortcut": "clients.elevenlabs",
|
|
12719
|
+
"className": "ElevenLabsClient",
|
|
12720
12720
|
"methods": {
|
|
12721
|
-
"
|
|
12722
|
-
"description": "
|
|
12723
|
-
"parameters": {
|
|
12724
|
-
|
|
12725
|
-
|
|
12726
|
-
|
|
12727
|
-
|
|
12728
|
-
|
|
12729
|
-
|
|
12730
|
-
|
|
12731
|
-
|
|
12732
|
-
},
|
|
12733
|
-
"required": [
|
|
12734
|
-
"prompt"
|
|
12735
|
-
],
|
|
12736
|
-
"returns": "Promise<{ prompt_id: string; number: number }>",
|
|
12721
|
+
"beforeRequest": {
|
|
12722
|
+
"description": "Inject the xi-api-key header before each request.",
|
|
12723
|
+
"parameters": {},
|
|
12724
|
+
"required": [],
|
|
12725
|
+
"returns": "void"
|
|
12726
|
+
},
|
|
12727
|
+
"connect": {
|
|
12728
|
+
"description": "Validate the API key by listing available models.",
|
|
12729
|
+
"parameters": {},
|
|
12730
|
+
"required": [],
|
|
12731
|
+
"returns": "Promise<this>",
|
|
12737
12732
|
"examples": [
|
|
12738
12733
|
{
|
|
12739
12734
|
"language": "ts",
|
|
12740
|
-
"code": "
|
|
12735
|
+
"code": "await el.connect()"
|
|
12741
12736
|
}
|
|
12742
12737
|
]
|
|
12743
12738
|
},
|
|
12744
|
-
"
|
|
12745
|
-
"description": "
|
|
12746
|
-
"parameters": {},
|
|
12747
|
-
"required": [],
|
|
12748
|
-
"returns": "Promise<{ queue_running: any[]; queue_pending: any[] }>"
|
|
12749
|
-
},
|
|
12750
|
-
"getHistory": {
|
|
12751
|
-
"description": "Get execution history, optionally for a specific prompt.",
|
|
12739
|
+
"listVoices": {
|
|
12740
|
+
"description": "List available voices with optional search and filtering.",
|
|
12752
12741
|
"parameters": {
|
|
12753
|
-
"
|
|
12754
|
-
"type": "string",
|
|
12755
|
-
"description": "
|
|
12742
|
+
"options": {
|
|
12743
|
+
"type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
|
|
12744
|
+
"description": "Query parameters for filtering voices"
|
|
12756
12745
|
}
|
|
12757
12746
|
},
|
|
12758
12747
|
"required": [],
|
|
12759
|
-
"returns": "Promise<
|
|
12760
|
-
|
|
12761
|
-
|
|
12762
|
-
|
|
12763
|
-
|
|
12764
|
-
"required": [],
|
|
12765
|
-
"returns": "Promise<any>"
|
|
12766
|
-
},
|
|
12767
|
-
"getObjectInfo": {
|
|
12768
|
-
"description": "Get node type info with input/output schemas.",
|
|
12769
|
-
"parameters": {
|
|
12770
|
-
"nodeClass": {
|
|
12771
|
-
"type": "string",
|
|
12772
|
-
"description": "If provided, returns info for this node type only"
|
|
12748
|
+
"returns": "Promise<any>",
|
|
12749
|
+
"examples": [
|
|
12750
|
+
{
|
|
12751
|
+
"language": "ts",
|
|
12752
|
+
"code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
|
|
12773
12753
|
}
|
|
12774
|
-
|
|
12775
|
-
"required": [],
|
|
12776
|
-
"returns": "Promise<any>"
|
|
12777
|
-
},
|
|
12778
|
-
"interrupt": {
|
|
12779
|
-
"description": "Interrupt the currently executing prompt.",
|
|
12780
|
-
"parameters": {},
|
|
12781
|
-
"required": [],
|
|
12782
|
-
"returns": "Promise<void>"
|
|
12754
|
+
]
|
|
12783
12755
|
},
|
|
12784
|
-
"
|
|
12785
|
-
"description": "
|
|
12756
|
+
"getVoice": {
|
|
12757
|
+
"description": "Get details for a single voice.",
|
|
12786
12758
|
"parameters": {
|
|
12787
|
-
"
|
|
12759
|
+
"voiceId": {
|
|
12788
12760
|
"type": "string",
|
|
12789
|
-
"description": "
|
|
12761
|
+
"description": "The voice ID to look up"
|
|
12790
12762
|
}
|
|
12791
12763
|
},
|
|
12792
|
-
"required": [
|
|
12793
|
-
|
|
12764
|
+
"required": [
|
|
12765
|
+
"voiceId"
|
|
12766
|
+
],
|
|
12767
|
+
"returns": "Promise<any>",
|
|
12768
|
+
"examples": [
|
|
12769
|
+
{
|
|
12770
|
+
"language": "ts",
|
|
12771
|
+
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
12772
|
+
}
|
|
12773
|
+
]
|
|
12794
12774
|
},
|
|
12795
|
-
"
|
|
12796
|
-
"description": "List available
|
|
12775
|
+
"listModels": {
|
|
12776
|
+
"description": "List available TTS models.",
|
|
12797
12777
|
"parameters": {},
|
|
12798
12778
|
"required": [],
|
|
12799
|
-
"returns": "Promise<
|
|
12800
|
-
|
|
12801
|
-
|
|
12802
|
-
|
|
12803
|
-
|
|
12804
|
-
"file": {
|
|
12805
|
-
"type": "Buffer | Blob",
|
|
12806
|
-
"description": "The image data as Buffer or Blob"
|
|
12807
|
-
},
|
|
12808
|
-
"filename": {
|
|
12809
|
-
"type": "string",
|
|
12810
|
-
"description": "File name for the upload"
|
|
12811
|
-
},
|
|
12812
|
-
"opts": {
|
|
12813
|
-
"type": "{ subfolder?: string; type?: string; overwrite?: boolean }",
|
|
12814
|
-
"description": "Upload options (subfolder, type, overwrite)"
|
|
12779
|
+
"returns": "Promise<any[]>",
|
|
12780
|
+
"examples": [
|
|
12781
|
+
{
|
|
12782
|
+
"language": "ts",
|
|
12783
|
+
"code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
|
|
12815
12784
|
}
|
|
12816
|
-
|
|
12817
|
-
"required": [
|
|
12818
|
-
"file",
|
|
12819
|
-
"filename"
|
|
12820
|
-
],
|
|
12821
|
-
"returns": "Promise<any>"
|
|
12785
|
+
]
|
|
12822
12786
|
},
|
|
12823
|
-
"
|
|
12824
|
-
"description": "
|
|
12787
|
+
"synthesize": {
|
|
12788
|
+
"description": "Synthesize speech from text, returning audio as a Buffer.",
|
|
12825
12789
|
"parameters": {
|
|
12826
|
-
"
|
|
12790
|
+
"text": {
|
|
12827
12791
|
"type": "string",
|
|
12828
|
-
"description": "The
|
|
12829
|
-
},
|
|
12830
|
-
"subfolder": {
|
|
12831
|
-
"type": "any",
|
|
12832
|
-
"description": "Subfolder within the output directory"
|
|
12792
|
+
"description": "The text to convert to speech"
|
|
12833
12793
|
},
|
|
12834
|
-
"
|
|
12835
|
-
"type": "
|
|
12836
|
-
"description": "
|
|
12794
|
+
"options": {
|
|
12795
|
+
"type": "SynthesizeOptions",
|
|
12796
|
+
"description": "Voice, model, format, and voice settings overrides",
|
|
12797
|
+
"properties": {
|
|
12798
|
+
"voiceId": {
|
|
12799
|
+
"type": "string",
|
|
12800
|
+
"description": ""
|
|
12801
|
+
},
|
|
12802
|
+
"modelId": {
|
|
12803
|
+
"type": "string",
|
|
12804
|
+
"description": ""
|
|
12805
|
+
},
|
|
12806
|
+
"outputFormat": {
|
|
12807
|
+
"type": "string",
|
|
12808
|
+
"description": ""
|
|
12809
|
+
},
|
|
12810
|
+
"voiceSettings": {
|
|
12811
|
+
"type": "ElevenLabsVoiceSettings",
|
|
12812
|
+
"description": ""
|
|
12813
|
+
},
|
|
12814
|
+
"disableCache": {
|
|
12815
|
+
"type": "boolean",
|
|
12816
|
+
"description": ""
|
|
12817
|
+
}
|
|
12818
|
+
}
|
|
12837
12819
|
}
|
|
12838
12820
|
},
|
|
12839
12821
|
"required": [
|
|
12840
|
-
"
|
|
12822
|
+
"text"
|
|
12841
12823
|
],
|
|
12842
|
-
"returns": "Promise<Buffer>"
|
|
12843
|
-
|
|
12844
|
-
|
|
12845
|
-
|
|
12846
|
-
|
|
12847
|
-
"required": [],
|
|
12848
|
-
"returns": "Promise<void>"
|
|
12849
|
-
},
|
|
12850
|
-
"disconnectWs": {
|
|
12851
|
-
"description": "Close the WebSocket connection.",
|
|
12852
|
-
"parameters": {},
|
|
12853
|
-
"required": [],
|
|
12854
|
-
"returns": "void"
|
|
12855
|
-
},
|
|
12856
|
-
"toApiFormat": {
|
|
12857
|
-
"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.",
|
|
12858
|
-
"parameters": {
|
|
12859
|
-
"workflow": {
|
|
12860
|
-
"type": "Record<string, any>",
|
|
12861
|
-
"description": "Parameter workflow"
|
|
12824
|
+
"returns": "Promise<Buffer>",
|
|
12825
|
+
"examples": [
|
|
12826
|
+
{
|
|
12827
|
+
"language": "ts",
|
|
12828
|
+
"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})"
|
|
12862
12829
|
}
|
|
12863
|
-
|
|
12864
|
-
"required": [
|
|
12865
|
-
"workflow"
|
|
12866
|
-
],
|
|
12867
|
-
"returns": "Promise<Record<string, any>>"
|
|
12830
|
+
]
|
|
12868
12831
|
},
|
|
12869
|
-
"
|
|
12870
|
-
"description": "
|
|
12832
|
+
"say": {
|
|
12833
|
+
"description": "Synthesize speech and write the audio to a file.",
|
|
12871
12834
|
"parameters": {
|
|
12872
|
-
"
|
|
12873
|
-
"type": "
|
|
12874
|
-
"description": "
|
|
12835
|
+
"text": {
|
|
12836
|
+
"type": "string",
|
|
12837
|
+
"description": "The text to convert to speech"
|
|
12875
12838
|
},
|
|
12876
|
-
"
|
|
12877
|
-
"type": "
|
|
12878
|
-
"description": "
|
|
12839
|
+
"outputPath": {
|
|
12840
|
+
"type": "string",
|
|
12841
|
+
"description": "File path to write the audio to"
|
|
12879
12842
|
},
|
|
12880
12843
|
"options": {
|
|
12881
|
-
"type": "
|
|
12882
|
-
"description": "
|
|
12844
|
+
"type": "SynthesizeOptions",
|
|
12845
|
+
"description": "Voice, model, format, and voice settings overrides",
|
|
12883
12846
|
"properties": {
|
|
12884
|
-
"
|
|
12885
|
-
"type": "
|
|
12886
|
-
"description": "
|
|
12887
|
-
},
|
|
12888
|
-
"pollInterval": {
|
|
12889
|
-
"type": "number",
|
|
12890
|
-
"description": "Polling interval in ms (default 1000)"
|
|
12847
|
+
"voiceId": {
|
|
12848
|
+
"type": "string",
|
|
12849
|
+
"description": ""
|
|
12891
12850
|
},
|
|
12892
|
-
"
|
|
12893
|
-
"type": "
|
|
12894
|
-
"description": "
|
|
12851
|
+
"modelId": {
|
|
12852
|
+
"type": "string",
|
|
12853
|
+
"description": ""
|
|
12895
12854
|
},
|
|
12896
|
-
"
|
|
12855
|
+
"outputFormat": {
|
|
12897
12856
|
"type": "string",
|
|
12898
|
-
"description": "
|
|
12857
|
+
"description": ""
|
|
12858
|
+
},
|
|
12859
|
+
"voiceSettings": {
|
|
12860
|
+
"type": "ElevenLabsVoiceSettings",
|
|
12861
|
+
"description": ""
|
|
12862
|
+
},
|
|
12863
|
+
"disableCache": {
|
|
12864
|
+
"type": "boolean",
|
|
12865
|
+
"description": ""
|
|
12899
12866
|
}
|
|
12900
12867
|
}
|
|
12901
12868
|
}
|
|
12902
12869
|
},
|
|
12903
12870
|
"required": [
|
|
12904
|
-
"
|
|
12871
|
+
"text",
|
|
12872
|
+
"outputPath"
|
|
12905
12873
|
],
|
|
12906
|
-
"returns": "Promise<
|
|
12874
|
+
"returns": "Promise<string>",
|
|
12875
|
+
"examples": [
|
|
12876
|
+
{
|
|
12877
|
+
"language": "ts",
|
|
12878
|
+
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
12879
|
+
}
|
|
12880
|
+
]
|
|
12907
12881
|
}
|
|
12908
12882
|
},
|
|
12909
12883
|
"getters": {
|
|
12910
|
-
"
|
|
12911
|
-
"description": "The
|
|
12912
|
-
"returns": "string"
|
|
12913
|
-
},
|
|
12914
|
-
"wsURL": {
|
|
12915
|
-
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
12884
|
+
"apiKey": {
|
|
12885
|
+
"description": "The resolved API key from options or environment.",
|
|
12916
12886
|
"returns": "string"
|
|
12917
12887
|
}
|
|
12918
12888
|
},
|
|
12919
12889
|
"events": {
|
|
12920
|
-
"
|
|
12921
|
-
"name": "
|
|
12922
|
-
"description": "Event emitted by
|
|
12923
|
-
"arguments": {}
|
|
12924
|
-
},
|
|
12925
|
-
"execution_complete": {
|
|
12926
|
-
"name": "execution_complete",
|
|
12927
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12928
|
-
"arguments": {}
|
|
12929
|
-
},
|
|
12930
|
-
"executing": {
|
|
12931
|
-
"name": "executing",
|
|
12932
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12933
|
-
"arguments": {}
|
|
12934
|
-
},
|
|
12935
|
-
"progress": {
|
|
12936
|
-
"name": "progress",
|
|
12937
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12938
|
-
"arguments": {}
|
|
12939
|
-
},
|
|
12940
|
-
"executed": {
|
|
12941
|
-
"name": "executed",
|
|
12942
|
-
"description": "Event emitted by ComfyUIClient",
|
|
12890
|
+
"failure": {
|
|
12891
|
+
"name": "failure",
|
|
12892
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
12943
12893
|
"arguments": {}
|
|
12944
12894
|
},
|
|
12945
|
-
"
|
|
12946
|
-
"name": "
|
|
12947
|
-
"description": "Event emitted by
|
|
12895
|
+
"voices": {
|
|
12896
|
+
"name": "voices",
|
|
12897
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
12948
12898
|
"arguments": {}
|
|
12949
12899
|
},
|
|
12950
|
-
"
|
|
12951
|
-
"name": "
|
|
12952
|
-
"description": "Event emitted by
|
|
12900
|
+
"speech": {
|
|
12901
|
+
"name": "speech",
|
|
12902
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
12953
12903
|
"arguments": {}
|
|
12954
12904
|
}
|
|
12955
12905
|
},
|
|
@@ -12959,48 +12909,65 @@ setBuildTimeData('clients.comfyui', {
|
|
|
12959
12909
|
"examples": [
|
|
12960
12910
|
{
|
|
12961
12911
|
"language": "ts",
|
|
12962
|
-
"code": "const
|
|
12912
|
+
"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"
|
|
12963
12913
|
}
|
|
12964
12914
|
],
|
|
12965
12915
|
"types": {
|
|
12966
|
-
"
|
|
12916
|
+
"SynthesizeOptions": {
|
|
12967
12917
|
"description": "",
|
|
12968
12918
|
"properties": {
|
|
12969
|
-
"
|
|
12970
|
-
"type": "
|
|
12971
|
-
"description": "
|
|
12919
|
+
"voiceId": {
|
|
12920
|
+
"type": "string",
|
|
12921
|
+
"description": "",
|
|
12972
12922
|
"optional": true
|
|
12973
12923
|
},
|
|
12974
|
-
"
|
|
12975
|
-
"type": "
|
|
12976
|
-
"description": "
|
|
12924
|
+
"modelId": {
|
|
12925
|
+
"type": "string",
|
|
12926
|
+
"description": "",
|
|
12977
12927
|
"optional": true
|
|
12978
12928
|
},
|
|
12979
|
-
"
|
|
12980
|
-
"type": "
|
|
12981
|
-
"description": "
|
|
12929
|
+
"outputFormat": {
|
|
12930
|
+
"type": "string",
|
|
12931
|
+
"description": "",
|
|
12982
12932
|
"optional": true
|
|
12983
12933
|
},
|
|
12984
|
-
"
|
|
12985
|
-
"type": "
|
|
12986
|
-
"description": "
|
|
12934
|
+
"voiceSettings": {
|
|
12935
|
+
"type": "ElevenLabsVoiceSettings",
|
|
12936
|
+
"description": "",
|
|
12937
|
+
"optional": true
|
|
12938
|
+
},
|
|
12939
|
+
"disableCache": {
|
|
12940
|
+
"type": "boolean",
|
|
12941
|
+
"description": "",
|
|
12987
12942
|
"optional": true
|
|
12988
12943
|
}
|
|
12989
12944
|
}
|
|
12990
12945
|
},
|
|
12991
|
-
"
|
|
12946
|
+
"ElevenLabsVoiceSettings": {
|
|
12992
12947
|
"description": "",
|
|
12993
12948
|
"properties": {
|
|
12994
|
-
"
|
|
12995
|
-
"type": "
|
|
12996
|
-
"description": ""
|
|
12949
|
+
"stability": {
|
|
12950
|
+
"type": "number",
|
|
12951
|
+
"description": "",
|
|
12952
|
+
"optional": true
|
|
12997
12953
|
},
|
|
12998
|
-
"
|
|
12999
|
-
"type": "
|
|
13000
|
-
"description": ""
|
|
12954
|
+
"similarityBoost": {
|
|
12955
|
+
"type": "number",
|
|
12956
|
+
"description": "",
|
|
12957
|
+
"optional": true
|
|
13001
12958
|
},
|
|
13002
|
-
"
|
|
13003
|
-
"type": "
|
|
12959
|
+
"style": {
|
|
12960
|
+
"type": "number",
|
|
12961
|
+
"description": "",
|
|
12962
|
+
"optional": true
|
|
12963
|
+
},
|
|
12964
|
+
"speed": {
|
|
12965
|
+
"type": "number",
|
|
12966
|
+
"description": "",
|
|
12967
|
+
"optional": true
|
|
12968
|
+
},
|
|
12969
|
+
"useSpeakerBoost": {
|
|
12970
|
+
"type": "boolean",
|
|
13004
12971
|
"description": "",
|
|
13005
12972
|
"optional": true
|
|
13006
12973
|
}
|
|
@@ -13009,194 +12976,244 @@ setBuildTimeData('clients.comfyui', {
|
|
|
13009
12976
|
}
|
|
13010
12977
|
});
|
|
13011
12978
|
|
|
13012
|
-
setBuildTimeData('clients.
|
|
13013
|
-
"id": "clients.
|
|
13014
|
-
"description": "
|
|
13015
|
-
"shortcut": "clients.
|
|
13016
|
-
"className": "
|
|
12979
|
+
setBuildTimeData('clients.comfyui', {
|
|
12980
|
+
"id": "clients.comfyui",
|
|
12981
|
+
"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.",
|
|
12982
|
+
"shortcut": "clients.comfyui",
|
|
12983
|
+
"className": "ComfyUIClient",
|
|
13017
12984
|
"methods": {
|
|
13018
|
-
"
|
|
13019
|
-
"description": "
|
|
12985
|
+
"queuePrompt": {
|
|
12986
|
+
"description": "Queue a prompt (API-format workflow) for execution.",
|
|
12987
|
+
"parameters": {
|
|
12988
|
+
"prompt": {
|
|
12989
|
+
"type": "Record<string, any>",
|
|
12990
|
+
"description": "The API-format workflow object"
|
|
12991
|
+
},
|
|
12992
|
+
"clientId": {
|
|
12993
|
+
"type": "string",
|
|
12994
|
+
"description": "Override the client ID for this request"
|
|
12995
|
+
}
|
|
12996
|
+
},
|
|
12997
|
+
"required": [
|
|
12998
|
+
"prompt"
|
|
12999
|
+
],
|
|
13000
|
+
"returns": "Promise<{ prompt_id: string; number: number }>",
|
|
13001
|
+
"examples": [
|
|
13002
|
+
{
|
|
13003
|
+
"language": "ts",
|
|
13004
|
+
"code": "const { prompt_id } = await comfy.queuePrompt(apiWorkflow)"
|
|
13005
|
+
}
|
|
13006
|
+
]
|
|
13007
|
+
},
|
|
13008
|
+
"getQueue": {
|
|
13009
|
+
"description": "Get the current prompt queue status.",
|
|
13020
13010
|
"parameters": {},
|
|
13021
13011
|
"required": [],
|
|
13022
|
-
"returns": "
|
|
13012
|
+
"returns": "Promise<{ queue_running: any[]; queue_pending: any[] }>"
|
|
13023
13013
|
},
|
|
13024
|
-
"
|
|
13025
|
-
"description": "
|
|
13014
|
+
"getHistory": {
|
|
13015
|
+
"description": "Get execution history, optionally for a specific prompt.",
|
|
13016
|
+
"parameters": {
|
|
13017
|
+
"promptId": {
|
|
13018
|
+
"type": "string",
|
|
13019
|
+
"description": "If provided, returns history for this prompt only"
|
|
13020
|
+
}
|
|
13021
|
+
},
|
|
13022
|
+
"required": [],
|
|
13023
|
+
"returns": "Promise<Record<string, any>>"
|
|
13024
|
+
},
|
|
13025
|
+
"getSystemStats": {
|
|
13026
|
+
"description": "Get system stats including GPU memory and queue info.",
|
|
13026
13027
|
"parameters": {},
|
|
13027
13028
|
"required": [],
|
|
13028
|
-
"returns": "Promise<
|
|
13029
|
-
|
|
13030
|
-
|
|
13031
|
-
|
|
13032
|
-
|
|
13029
|
+
"returns": "Promise<any>"
|
|
13030
|
+
},
|
|
13031
|
+
"getObjectInfo": {
|
|
13032
|
+
"description": "Get node type info with input/output schemas.",
|
|
13033
|
+
"parameters": {
|
|
13034
|
+
"nodeClass": {
|
|
13035
|
+
"type": "string",
|
|
13036
|
+
"description": "If provided, returns info for this node type only"
|
|
13033
13037
|
}
|
|
13034
|
-
|
|
13038
|
+
},
|
|
13039
|
+
"required": [],
|
|
13040
|
+
"returns": "Promise<any>"
|
|
13035
13041
|
},
|
|
13036
|
-
"
|
|
13037
|
-
"description": "
|
|
13042
|
+
"interrupt": {
|
|
13043
|
+
"description": "Interrupt the currently executing prompt.",
|
|
13044
|
+
"parameters": {},
|
|
13045
|
+
"required": [],
|
|
13046
|
+
"returns": "Promise<void>"
|
|
13047
|
+
},
|
|
13048
|
+
"getModels": {
|
|
13049
|
+
"description": "List available models, optionally filtered by type.",
|
|
13038
13050
|
"parameters": {
|
|
13039
|
-
"
|
|
13040
|
-
"type": "
|
|
13041
|
-
"description": "
|
|
13051
|
+
"type": {
|
|
13052
|
+
"type": "string",
|
|
13053
|
+
"description": "Model type filter (e.g., 'checkpoints', 'loras')"
|
|
13042
13054
|
}
|
|
13043
13055
|
},
|
|
13044
13056
|
"required": [],
|
|
13045
|
-
"returns": "Promise<
|
|
13046
|
-
|
|
13047
|
-
|
|
13048
|
-
|
|
13049
|
-
|
|
13057
|
+
"returns": "Promise<string[]>"
|
|
13058
|
+
},
|
|
13059
|
+
"getEmbeddings": {
|
|
13060
|
+
"description": "List available embedding models.",
|
|
13061
|
+
"parameters": {},
|
|
13062
|
+
"required": [],
|
|
13063
|
+
"returns": "Promise<string[]>"
|
|
13064
|
+
},
|
|
13065
|
+
"uploadImage": {
|
|
13066
|
+
"description": "Upload an image to ComfyUI's input directory.",
|
|
13067
|
+
"parameters": {
|
|
13068
|
+
"file": {
|
|
13069
|
+
"type": "Buffer | Blob",
|
|
13070
|
+
"description": "The image data as Buffer or Blob"
|
|
13071
|
+
},
|
|
13072
|
+
"filename": {
|
|
13073
|
+
"type": "string",
|
|
13074
|
+
"description": "File name for the upload"
|
|
13075
|
+
},
|
|
13076
|
+
"opts": {
|
|
13077
|
+
"type": "{ subfolder?: string; type?: string; overwrite?: boolean }",
|
|
13078
|
+
"description": "Upload options (subfolder, type, overwrite)"
|
|
13050
13079
|
}
|
|
13051
|
-
|
|
13080
|
+
},
|
|
13081
|
+
"required": [
|
|
13082
|
+
"file",
|
|
13083
|
+
"filename"
|
|
13084
|
+
],
|
|
13085
|
+
"returns": "Promise<any>"
|
|
13052
13086
|
},
|
|
13053
|
-
"
|
|
13054
|
-
"description": "
|
|
13087
|
+
"viewImage": {
|
|
13088
|
+
"description": "Download a generated image from ComfyUI as a Buffer.",
|
|
13055
13089
|
"parameters": {
|
|
13056
|
-
"
|
|
13090
|
+
"filename": {
|
|
13057
13091
|
"type": "string",
|
|
13058
|
-
"description": "The
|
|
13092
|
+
"description": "The image filename"
|
|
13093
|
+
},
|
|
13094
|
+
"subfolder": {
|
|
13095
|
+
"type": "any",
|
|
13096
|
+
"description": "Subfolder within the output directory"
|
|
13097
|
+
},
|
|
13098
|
+
"type": {
|
|
13099
|
+
"type": "any",
|
|
13100
|
+
"description": "Image type ('output', 'input', 'temp')"
|
|
13059
13101
|
}
|
|
13060
13102
|
},
|
|
13061
13103
|
"required": [
|
|
13062
|
-
"
|
|
13104
|
+
"filename"
|
|
13063
13105
|
],
|
|
13064
|
-
"returns": "Promise<
|
|
13065
|
-
"examples": [
|
|
13066
|
-
{
|
|
13067
|
-
"language": "ts",
|
|
13068
|
-
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
13069
|
-
}
|
|
13070
|
-
]
|
|
13106
|
+
"returns": "Promise<Buffer>"
|
|
13071
13107
|
},
|
|
13072
|
-
"
|
|
13073
|
-
"description": "
|
|
13108
|
+
"connectWs": {
|
|
13109
|
+
"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`.",
|
|
13074
13110
|
"parameters": {},
|
|
13075
13111
|
"required": [],
|
|
13076
|
-
"returns": "Promise<
|
|
13077
|
-
"examples": [
|
|
13078
|
-
{
|
|
13079
|
-
"language": "ts",
|
|
13080
|
-
"code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
|
|
13081
|
-
}
|
|
13082
|
-
]
|
|
13112
|
+
"returns": "Promise<void>"
|
|
13083
13113
|
},
|
|
13084
|
-
"
|
|
13085
|
-
"description": "
|
|
13114
|
+
"disconnectWs": {
|
|
13115
|
+
"description": "Close the WebSocket connection.",
|
|
13116
|
+
"parameters": {},
|
|
13117
|
+
"required": [],
|
|
13118
|
+
"returns": "void"
|
|
13119
|
+
},
|
|
13120
|
+
"toApiFormat": {
|
|
13121
|
+
"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.",
|
|
13086
13122
|
"parameters": {
|
|
13087
|
-
"
|
|
13088
|
-
"type": "string",
|
|
13089
|
-
"description": "
|
|
13090
|
-
},
|
|
13091
|
-
"options": {
|
|
13092
|
-
"type": "SynthesizeOptions",
|
|
13093
|
-
"description": "Voice, model, format, and voice settings overrides",
|
|
13094
|
-
"properties": {
|
|
13095
|
-
"voiceId": {
|
|
13096
|
-
"type": "string",
|
|
13097
|
-
"description": ""
|
|
13098
|
-
},
|
|
13099
|
-
"modelId": {
|
|
13100
|
-
"type": "string",
|
|
13101
|
-
"description": ""
|
|
13102
|
-
},
|
|
13103
|
-
"outputFormat": {
|
|
13104
|
-
"type": "string",
|
|
13105
|
-
"description": ""
|
|
13106
|
-
},
|
|
13107
|
-
"voiceSettings": {
|
|
13108
|
-
"type": "ElevenLabsVoiceSettings",
|
|
13109
|
-
"description": ""
|
|
13110
|
-
},
|
|
13111
|
-
"disableCache": {
|
|
13112
|
-
"type": "boolean",
|
|
13113
|
-
"description": ""
|
|
13114
|
-
}
|
|
13115
|
-
}
|
|
13123
|
+
"workflow": {
|
|
13124
|
+
"type": "Record<string, any>",
|
|
13125
|
+
"description": "Parameter workflow"
|
|
13116
13126
|
}
|
|
13117
13127
|
},
|
|
13118
13128
|
"required": [
|
|
13119
|
-
"
|
|
13129
|
+
"workflow"
|
|
13120
13130
|
],
|
|
13121
|
-
"returns": "Promise<
|
|
13122
|
-
"examples": [
|
|
13123
|
-
{
|
|
13124
|
-
"language": "ts",
|
|
13125
|
-
"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})"
|
|
13126
|
-
}
|
|
13127
|
-
]
|
|
13131
|
+
"returns": "Promise<Record<string, any>>"
|
|
13128
13132
|
},
|
|
13129
|
-
"
|
|
13130
|
-
"description": "
|
|
13133
|
+
"runWorkflow": {
|
|
13134
|
+
"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' } } ```",
|
|
13131
13135
|
"parameters": {
|
|
13132
|
-
"
|
|
13133
|
-
"type": "string",
|
|
13134
|
-
"description": "
|
|
13136
|
+
"workflow": {
|
|
13137
|
+
"type": "Record<string, any>",
|
|
13138
|
+
"description": "Parameter workflow"
|
|
13135
13139
|
},
|
|
13136
|
-
"
|
|
13137
|
-
"type": "string",
|
|
13138
|
-
"description": "
|
|
13140
|
+
"inputs": {
|
|
13141
|
+
"type": "Record<string, any>",
|
|
13142
|
+
"description": "Parameter inputs"
|
|
13139
13143
|
},
|
|
13140
13144
|
"options": {
|
|
13141
|
-
"type": "
|
|
13142
|
-
"description": "
|
|
13145
|
+
"type": "WorkflowRunOptions",
|
|
13146
|
+
"description": "Parameter options",
|
|
13143
13147
|
"properties": {
|
|
13144
|
-
"
|
|
13145
|
-
"type": "
|
|
13146
|
-
"description": ""
|
|
13147
|
-
},
|
|
13148
|
-
"modelId": {
|
|
13149
|
-
"type": "string",
|
|
13150
|
-
"description": ""
|
|
13148
|
+
"poll": {
|
|
13149
|
+
"type": "boolean",
|
|
13150
|
+
"description": "Use polling instead of WebSocket for tracking execution"
|
|
13151
13151
|
},
|
|
13152
|
-
"
|
|
13153
|
-
"type": "
|
|
13154
|
-
"description": ""
|
|
13152
|
+
"pollInterval": {
|
|
13153
|
+
"type": "number",
|
|
13154
|
+
"description": "Polling interval in ms (default 1000)"
|
|
13155
13155
|
},
|
|
13156
|
-
"
|
|
13157
|
-
"type": "
|
|
13158
|
-
"description": ""
|
|
13156
|
+
"inputMap": {
|
|
13157
|
+
"type": "InputMapping",
|
|
13158
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }"
|
|
13159
13159
|
},
|
|
13160
|
-
"
|
|
13161
|
-
"type": "
|
|
13162
|
-
"description": ""
|
|
13160
|
+
"outputDir": {
|
|
13161
|
+
"type": "string",
|
|
13162
|
+
"description": "If provided, output images are downloaded to this directory"
|
|
13163
13163
|
}
|
|
13164
13164
|
}
|
|
13165
13165
|
}
|
|
13166
13166
|
},
|
|
13167
13167
|
"required": [
|
|
13168
|
-
"
|
|
13169
|
-
"outputPath"
|
|
13168
|
+
"workflow"
|
|
13170
13169
|
],
|
|
13171
|
-
"returns": "Promise<
|
|
13172
|
-
"examples": [
|
|
13173
|
-
{
|
|
13174
|
-
"language": "ts",
|
|
13175
|
-
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
13176
|
-
}
|
|
13177
|
-
]
|
|
13170
|
+
"returns": "Promise<WorkflowResult>"
|
|
13178
13171
|
}
|
|
13179
13172
|
},
|
|
13180
13173
|
"getters": {
|
|
13181
|
-
"
|
|
13182
|
-
"description": "The
|
|
13174
|
+
"clientId": {
|
|
13175
|
+
"description": "The unique client ID used for WebSocket session tracking.",
|
|
13176
|
+
"returns": "string"
|
|
13177
|
+
},
|
|
13178
|
+
"wsURL": {
|
|
13179
|
+
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
13183
13180
|
"returns": "string"
|
|
13184
13181
|
}
|
|
13185
13182
|
},
|
|
13186
13183
|
"events": {
|
|
13187
|
-
"
|
|
13188
|
-
"name": "
|
|
13189
|
-
"description": "Event emitted by
|
|
13184
|
+
"execution_start": {
|
|
13185
|
+
"name": "execution_start",
|
|
13186
|
+
"description": "Event emitted by ComfyUIClient",
|
|
13190
13187
|
"arguments": {}
|
|
13191
13188
|
},
|
|
13192
|
-
"
|
|
13193
|
-
"name": "
|
|
13194
|
-
"description": "Event emitted by
|
|
13189
|
+
"execution_complete": {
|
|
13190
|
+
"name": "execution_complete",
|
|
13191
|
+
"description": "Event emitted by ComfyUIClient",
|
|
13195
13192
|
"arguments": {}
|
|
13196
13193
|
},
|
|
13197
|
-
"
|
|
13198
|
-
"name": "
|
|
13199
|
-
"description": "Event emitted by
|
|
13194
|
+
"executing": {
|
|
13195
|
+
"name": "executing",
|
|
13196
|
+
"description": "Event emitted by ComfyUIClient",
|
|
13197
|
+
"arguments": {}
|
|
13198
|
+
},
|
|
13199
|
+
"progress": {
|
|
13200
|
+
"name": "progress",
|
|
13201
|
+
"description": "Event emitted by ComfyUIClient",
|
|
13202
|
+
"arguments": {}
|
|
13203
|
+
},
|
|
13204
|
+
"executed": {
|
|
13205
|
+
"name": "executed",
|
|
13206
|
+
"description": "Event emitted by ComfyUIClient",
|
|
13207
|
+
"arguments": {}
|
|
13208
|
+
},
|
|
13209
|
+
"execution_cached": {
|
|
13210
|
+
"name": "execution_cached",
|
|
13211
|
+
"description": "Event emitted by ComfyUIClient",
|
|
13212
|
+
"arguments": {}
|
|
13213
|
+
},
|
|
13214
|
+
"execution_error": {
|
|
13215
|
+
"name": "execution_error",
|
|
13216
|
+
"description": "Event emitted by ComfyUIClient",
|
|
13200
13217
|
"arguments": {}
|
|
13201
13218
|
}
|
|
13202
13219
|
},
|
|
@@ -13206,65 +13223,48 @@ setBuildTimeData('clients.elevenlabs', {
|
|
|
13206
13223
|
"examples": [
|
|
13207
13224
|
{
|
|
13208
13225
|
"language": "ts",
|
|
13209
|
-
"code": "const
|
|
13226
|
+
"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)"
|
|
13210
13227
|
}
|
|
13211
13228
|
],
|
|
13212
13229
|
"types": {
|
|
13213
|
-
"
|
|
13230
|
+
"WorkflowRunOptions": {
|
|
13214
13231
|
"description": "",
|
|
13215
13232
|
"properties": {
|
|
13216
|
-
"
|
|
13217
|
-
"type": "
|
|
13218
|
-
"description": "",
|
|
13219
|
-
"optional": true
|
|
13220
|
-
},
|
|
13221
|
-
"modelId": {
|
|
13222
|
-
"type": "string",
|
|
13223
|
-
"description": "",
|
|
13233
|
+
"poll": {
|
|
13234
|
+
"type": "boolean",
|
|
13235
|
+
"description": "Use polling instead of WebSocket for tracking execution",
|
|
13224
13236
|
"optional": true
|
|
13225
13237
|
},
|
|
13226
|
-
"
|
|
13227
|
-
"type": "
|
|
13228
|
-
"description": "",
|
|
13238
|
+
"pollInterval": {
|
|
13239
|
+
"type": "number",
|
|
13240
|
+
"description": "Polling interval in ms (default 1000)",
|
|
13229
13241
|
"optional": true
|
|
13230
13242
|
},
|
|
13231
|
-
"
|
|
13232
|
-
"type": "
|
|
13233
|
-
"description": "",
|
|
13243
|
+
"inputMap": {
|
|
13244
|
+
"type": "InputMapping",
|
|
13245
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }",
|
|
13234
13246
|
"optional": true
|
|
13235
13247
|
},
|
|
13236
|
-
"
|
|
13237
|
-
"type": "
|
|
13238
|
-
"description": "",
|
|
13248
|
+
"outputDir": {
|
|
13249
|
+
"type": "string",
|
|
13250
|
+
"description": "If provided, output images are downloaded to this directory",
|
|
13239
13251
|
"optional": true
|
|
13240
13252
|
}
|
|
13241
13253
|
}
|
|
13242
13254
|
},
|
|
13243
|
-
"
|
|
13244
|
-
"description": "",
|
|
13245
|
-
"properties": {
|
|
13246
|
-
"
|
|
13247
|
-
"type": "
|
|
13248
|
-
"description": ""
|
|
13249
|
-
"optional": true
|
|
13250
|
-
},
|
|
13251
|
-
"similarityBoost": {
|
|
13252
|
-
"type": "number",
|
|
13253
|
-
"description": "",
|
|
13254
|
-
"optional": true
|
|
13255
|
-
},
|
|
13256
|
-
"style": {
|
|
13257
|
-
"type": "number",
|
|
13258
|
-
"description": "",
|
|
13259
|
-
"optional": true
|
|
13255
|
+
"WorkflowResult": {
|
|
13256
|
+
"description": "",
|
|
13257
|
+
"properties": {
|
|
13258
|
+
"promptId": {
|
|
13259
|
+
"type": "string",
|
|
13260
|
+
"description": ""
|
|
13260
13261
|
},
|
|
13261
|
-
"
|
|
13262
|
-
"type": "
|
|
13263
|
-
"description": ""
|
|
13264
|
-
"optional": true
|
|
13262
|
+
"outputs": {
|
|
13263
|
+
"type": "Record<string, any>",
|
|
13264
|
+
"description": ""
|
|
13265
13265
|
},
|
|
13266
|
-
"
|
|
13267
|
-
"type": "
|
|
13266
|
+
"images": {
|
|
13267
|
+
"type": "Array<{ filename: string; subfolder: string; type: string; localPath?: string }>",
|
|
13268
13268
|
"description": "",
|
|
13269
13269
|
"optional": true
|
|
13270
13270
|
}
|
|
@@ -26912,7 +26912,270 @@ export const introspectionData = [
|
|
|
26912
26912
|
"language": "ts",
|
|
26913
26913
|
"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})"
|
|
26914
26914
|
}
|
|
26915
|
-
]
|
|
26915
|
+
]
|
|
26916
|
+
},
|
|
26917
|
+
{
|
|
26918
|
+
"id": "clients.elevenlabs",
|
|
26919
|
+
"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.",
|
|
26920
|
+
"shortcut": "clients.elevenlabs",
|
|
26921
|
+
"className": "ElevenLabsClient",
|
|
26922
|
+
"methods": {
|
|
26923
|
+
"beforeRequest": {
|
|
26924
|
+
"description": "Inject the xi-api-key header before each request.",
|
|
26925
|
+
"parameters": {},
|
|
26926
|
+
"required": [],
|
|
26927
|
+
"returns": "void"
|
|
26928
|
+
},
|
|
26929
|
+
"connect": {
|
|
26930
|
+
"description": "Validate the API key by listing available models.",
|
|
26931
|
+
"parameters": {},
|
|
26932
|
+
"required": [],
|
|
26933
|
+
"returns": "Promise<this>",
|
|
26934
|
+
"examples": [
|
|
26935
|
+
{
|
|
26936
|
+
"language": "ts",
|
|
26937
|
+
"code": "await el.connect()"
|
|
26938
|
+
}
|
|
26939
|
+
]
|
|
26940
|
+
},
|
|
26941
|
+
"listVoices": {
|
|
26942
|
+
"description": "List available voices with optional search and filtering.",
|
|
26943
|
+
"parameters": {
|
|
26944
|
+
"options": {
|
|
26945
|
+
"type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
|
|
26946
|
+
"description": "Query parameters for filtering voices"
|
|
26947
|
+
}
|
|
26948
|
+
},
|
|
26949
|
+
"required": [],
|
|
26950
|
+
"returns": "Promise<any>",
|
|
26951
|
+
"examples": [
|
|
26952
|
+
{
|
|
26953
|
+
"language": "ts",
|
|
26954
|
+
"code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
|
|
26955
|
+
}
|
|
26956
|
+
]
|
|
26957
|
+
},
|
|
26958
|
+
"getVoice": {
|
|
26959
|
+
"description": "Get details for a single voice.",
|
|
26960
|
+
"parameters": {
|
|
26961
|
+
"voiceId": {
|
|
26962
|
+
"type": "string",
|
|
26963
|
+
"description": "The voice ID to look up"
|
|
26964
|
+
}
|
|
26965
|
+
},
|
|
26966
|
+
"required": [
|
|
26967
|
+
"voiceId"
|
|
26968
|
+
],
|
|
26969
|
+
"returns": "Promise<any>",
|
|
26970
|
+
"examples": [
|
|
26971
|
+
{
|
|
26972
|
+
"language": "ts",
|
|
26973
|
+
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
26974
|
+
}
|
|
26975
|
+
]
|
|
26976
|
+
},
|
|
26977
|
+
"listModels": {
|
|
26978
|
+
"description": "List available TTS models.",
|
|
26979
|
+
"parameters": {},
|
|
26980
|
+
"required": [],
|
|
26981
|
+
"returns": "Promise<any[]>",
|
|
26982
|
+
"examples": [
|
|
26983
|
+
{
|
|
26984
|
+
"language": "ts",
|
|
26985
|
+
"code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
|
|
26986
|
+
}
|
|
26987
|
+
]
|
|
26988
|
+
},
|
|
26989
|
+
"synthesize": {
|
|
26990
|
+
"description": "Synthesize speech from text, returning audio as a Buffer.",
|
|
26991
|
+
"parameters": {
|
|
26992
|
+
"text": {
|
|
26993
|
+
"type": "string",
|
|
26994
|
+
"description": "The text to convert to speech"
|
|
26995
|
+
},
|
|
26996
|
+
"options": {
|
|
26997
|
+
"type": "SynthesizeOptions",
|
|
26998
|
+
"description": "Voice, model, format, and voice settings overrides",
|
|
26999
|
+
"properties": {
|
|
27000
|
+
"voiceId": {
|
|
27001
|
+
"type": "string",
|
|
27002
|
+
"description": ""
|
|
27003
|
+
},
|
|
27004
|
+
"modelId": {
|
|
27005
|
+
"type": "string",
|
|
27006
|
+
"description": ""
|
|
27007
|
+
},
|
|
27008
|
+
"outputFormat": {
|
|
27009
|
+
"type": "string",
|
|
27010
|
+
"description": ""
|
|
27011
|
+
},
|
|
27012
|
+
"voiceSettings": {
|
|
27013
|
+
"type": "ElevenLabsVoiceSettings",
|
|
27014
|
+
"description": ""
|
|
27015
|
+
},
|
|
27016
|
+
"disableCache": {
|
|
27017
|
+
"type": "boolean",
|
|
27018
|
+
"description": ""
|
|
27019
|
+
}
|
|
27020
|
+
}
|
|
27021
|
+
}
|
|
27022
|
+
},
|
|
27023
|
+
"required": [
|
|
27024
|
+
"text"
|
|
27025
|
+
],
|
|
27026
|
+
"returns": "Promise<Buffer>",
|
|
27027
|
+
"examples": [
|
|
27028
|
+
{
|
|
27029
|
+
"language": "ts",
|
|
27030
|
+
"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})"
|
|
27031
|
+
}
|
|
27032
|
+
]
|
|
27033
|
+
},
|
|
27034
|
+
"say": {
|
|
27035
|
+
"description": "Synthesize speech and write the audio to a file.",
|
|
27036
|
+
"parameters": {
|
|
27037
|
+
"text": {
|
|
27038
|
+
"type": "string",
|
|
27039
|
+
"description": "The text to convert to speech"
|
|
27040
|
+
},
|
|
27041
|
+
"outputPath": {
|
|
27042
|
+
"type": "string",
|
|
27043
|
+
"description": "File path to write the audio to"
|
|
27044
|
+
},
|
|
27045
|
+
"options": {
|
|
27046
|
+
"type": "SynthesizeOptions",
|
|
27047
|
+
"description": "Voice, model, format, and voice settings overrides",
|
|
27048
|
+
"properties": {
|
|
27049
|
+
"voiceId": {
|
|
27050
|
+
"type": "string",
|
|
27051
|
+
"description": ""
|
|
27052
|
+
},
|
|
27053
|
+
"modelId": {
|
|
27054
|
+
"type": "string",
|
|
27055
|
+
"description": ""
|
|
27056
|
+
},
|
|
27057
|
+
"outputFormat": {
|
|
27058
|
+
"type": "string",
|
|
27059
|
+
"description": ""
|
|
27060
|
+
},
|
|
27061
|
+
"voiceSettings": {
|
|
27062
|
+
"type": "ElevenLabsVoiceSettings",
|
|
27063
|
+
"description": ""
|
|
27064
|
+
},
|
|
27065
|
+
"disableCache": {
|
|
27066
|
+
"type": "boolean",
|
|
27067
|
+
"description": ""
|
|
27068
|
+
}
|
|
27069
|
+
}
|
|
27070
|
+
}
|
|
27071
|
+
},
|
|
27072
|
+
"required": [
|
|
27073
|
+
"text",
|
|
27074
|
+
"outputPath"
|
|
27075
|
+
],
|
|
27076
|
+
"returns": "Promise<string>",
|
|
27077
|
+
"examples": [
|
|
27078
|
+
{
|
|
27079
|
+
"language": "ts",
|
|
27080
|
+
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
27081
|
+
}
|
|
27082
|
+
]
|
|
27083
|
+
}
|
|
27084
|
+
},
|
|
27085
|
+
"getters": {
|
|
27086
|
+
"apiKey": {
|
|
27087
|
+
"description": "The resolved API key from options or environment.",
|
|
27088
|
+
"returns": "string"
|
|
27089
|
+
}
|
|
27090
|
+
},
|
|
27091
|
+
"events": {
|
|
27092
|
+
"failure": {
|
|
27093
|
+
"name": "failure",
|
|
27094
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
27095
|
+
"arguments": {}
|
|
27096
|
+
},
|
|
27097
|
+
"voices": {
|
|
27098
|
+
"name": "voices",
|
|
27099
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
27100
|
+
"arguments": {}
|
|
27101
|
+
},
|
|
27102
|
+
"speech": {
|
|
27103
|
+
"name": "speech",
|
|
27104
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
27105
|
+
"arguments": {}
|
|
27106
|
+
}
|
|
27107
|
+
},
|
|
27108
|
+
"state": {},
|
|
27109
|
+
"options": {},
|
|
27110
|
+
"envVars": [],
|
|
27111
|
+
"examples": [
|
|
27112
|
+
{
|
|
27113
|
+
"language": "ts",
|
|
27114
|
+
"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"
|
|
27115
|
+
}
|
|
27116
|
+
],
|
|
27117
|
+
"types": {
|
|
27118
|
+
"SynthesizeOptions": {
|
|
27119
|
+
"description": "",
|
|
27120
|
+
"properties": {
|
|
27121
|
+
"voiceId": {
|
|
27122
|
+
"type": "string",
|
|
27123
|
+
"description": "",
|
|
27124
|
+
"optional": true
|
|
27125
|
+
},
|
|
27126
|
+
"modelId": {
|
|
27127
|
+
"type": "string",
|
|
27128
|
+
"description": "",
|
|
27129
|
+
"optional": true
|
|
27130
|
+
},
|
|
27131
|
+
"outputFormat": {
|
|
27132
|
+
"type": "string",
|
|
27133
|
+
"description": "",
|
|
27134
|
+
"optional": true
|
|
27135
|
+
},
|
|
27136
|
+
"voiceSettings": {
|
|
27137
|
+
"type": "ElevenLabsVoiceSettings",
|
|
27138
|
+
"description": "",
|
|
27139
|
+
"optional": true
|
|
27140
|
+
},
|
|
27141
|
+
"disableCache": {
|
|
27142
|
+
"type": "boolean",
|
|
27143
|
+
"description": "",
|
|
27144
|
+
"optional": true
|
|
27145
|
+
}
|
|
27146
|
+
}
|
|
27147
|
+
},
|
|
27148
|
+
"ElevenLabsVoiceSettings": {
|
|
27149
|
+
"description": "",
|
|
27150
|
+
"properties": {
|
|
27151
|
+
"stability": {
|
|
27152
|
+
"type": "number",
|
|
27153
|
+
"description": "",
|
|
27154
|
+
"optional": true
|
|
27155
|
+
},
|
|
27156
|
+
"similarityBoost": {
|
|
27157
|
+
"type": "number",
|
|
27158
|
+
"description": "",
|
|
27159
|
+
"optional": true
|
|
27160
|
+
},
|
|
27161
|
+
"style": {
|
|
27162
|
+
"type": "number",
|
|
27163
|
+
"description": "",
|
|
27164
|
+
"optional": true
|
|
27165
|
+
},
|
|
27166
|
+
"speed": {
|
|
27167
|
+
"type": "number",
|
|
27168
|
+
"description": "",
|
|
27169
|
+
"optional": true
|
|
27170
|
+
},
|
|
27171
|
+
"useSpeakerBoost": {
|
|
27172
|
+
"type": "boolean",
|
|
27173
|
+
"description": "",
|
|
27174
|
+
"optional": true
|
|
27175
|
+
}
|
|
27176
|
+
}
|
|
27177
|
+
}
|
|
27178
|
+
}
|
|
26916
27179
|
},
|
|
26917
27180
|
{
|
|
26918
27181
|
"id": "clients.comfyui",
|
|
@@ -27022,382 +27285,136 @@ export const introspectionData = [
|
|
|
27022
27285
|
],
|
|
27023
27286
|
"returns": "Promise<any>"
|
|
27024
27287
|
},
|
|
27025
|
-
"viewImage": {
|
|
27026
|
-
"description": "Download a generated image from ComfyUI as a Buffer.",
|
|
27027
|
-
"parameters": {
|
|
27028
|
-
"filename": {
|
|
27029
|
-
"type": "string",
|
|
27030
|
-
"description": "The image filename"
|
|
27031
|
-
},
|
|
27032
|
-
"subfolder": {
|
|
27033
|
-
"type": "any",
|
|
27034
|
-
"description": "Subfolder within the output directory"
|
|
27035
|
-
},
|
|
27036
|
-
"type": {
|
|
27037
|
-
"type": "any",
|
|
27038
|
-
"description": "Image type ('output', 'input', 'temp')"
|
|
27039
|
-
}
|
|
27040
|
-
},
|
|
27041
|
-
"required": [
|
|
27042
|
-
"filename"
|
|
27043
|
-
],
|
|
27044
|
-
"returns": "Promise<Buffer>"
|
|
27045
|
-
},
|
|
27046
|
-
"connectWs": {
|
|
27047
|
-
"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`.",
|
|
27048
|
-
"parameters": {},
|
|
27049
|
-
"required": [],
|
|
27050
|
-
"returns": "Promise<void>"
|
|
27051
|
-
},
|
|
27052
|
-
"disconnectWs": {
|
|
27053
|
-
"description": "Close the WebSocket connection.",
|
|
27054
|
-
"parameters": {},
|
|
27055
|
-
"required": [],
|
|
27056
|
-
"returns": "void"
|
|
27057
|
-
},
|
|
27058
|
-
"toApiFormat": {
|
|
27059
|
-
"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.",
|
|
27060
|
-
"parameters": {
|
|
27061
|
-
"workflow": {
|
|
27062
|
-
"type": "Record<string, any>",
|
|
27063
|
-
"description": "Parameter workflow"
|
|
27064
|
-
}
|
|
27065
|
-
},
|
|
27066
|
-
"required": [
|
|
27067
|
-
"workflow"
|
|
27068
|
-
],
|
|
27069
|
-
"returns": "Promise<Record<string, any>>"
|
|
27070
|
-
},
|
|
27071
|
-
"runWorkflow": {
|
|
27072
|
-
"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' } } ```",
|
|
27073
|
-
"parameters": {
|
|
27074
|
-
"workflow": {
|
|
27075
|
-
"type": "Record<string, any>",
|
|
27076
|
-
"description": "Parameter workflow"
|
|
27077
|
-
},
|
|
27078
|
-
"inputs": {
|
|
27079
|
-
"type": "Record<string, any>",
|
|
27080
|
-
"description": "Parameter inputs"
|
|
27081
|
-
},
|
|
27082
|
-
"options": {
|
|
27083
|
-
"type": "WorkflowRunOptions",
|
|
27084
|
-
"description": "Parameter options",
|
|
27085
|
-
"properties": {
|
|
27086
|
-
"poll": {
|
|
27087
|
-
"type": "boolean",
|
|
27088
|
-
"description": "Use polling instead of WebSocket for tracking execution"
|
|
27089
|
-
},
|
|
27090
|
-
"pollInterval": {
|
|
27091
|
-
"type": "number",
|
|
27092
|
-
"description": "Polling interval in ms (default 1000)"
|
|
27093
|
-
},
|
|
27094
|
-
"inputMap": {
|
|
27095
|
-
"type": "InputMapping",
|
|
27096
|
-
"description": "Named input mapping: semantic name -> { nodeId, field }"
|
|
27097
|
-
},
|
|
27098
|
-
"outputDir": {
|
|
27099
|
-
"type": "string",
|
|
27100
|
-
"description": "If provided, output images are downloaded to this directory"
|
|
27101
|
-
}
|
|
27102
|
-
}
|
|
27103
|
-
}
|
|
27104
|
-
},
|
|
27105
|
-
"required": [
|
|
27106
|
-
"workflow"
|
|
27107
|
-
],
|
|
27108
|
-
"returns": "Promise<WorkflowResult>"
|
|
27109
|
-
}
|
|
27110
|
-
},
|
|
27111
|
-
"getters": {
|
|
27112
|
-
"clientId": {
|
|
27113
|
-
"description": "The unique client ID used for WebSocket session tracking.",
|
|
27114
|
-
"returns": "string"
|
|
27115
|
-
},
|
|
27116
|
-
"wsURL": {
|
|
27117
|
-
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
27118
|
-
"returns": "string"
|
|
27119
|
-
}
|
|
27120
|
-
},
|
|
27121
|
-
"events": {
|
|
27122
|
-
"execution_start": {
|
|
27123
|
-
"name": "execution_start",
|
|
27124
|
-
"description": "Event emitted by ComfyUIClient",
|
|
27125
|
-
"arguments": {}
|
|
27126
|
-
},
|
|
27127
|
-
"execution_complete": {
|
|
27128
|
-
"name": "execution_complete",
|
|
27129
|
-
"description": "Event emitted by ComfyUIClient",
|
|
27130
|
-
"arguments": {}
|
|
27131
|
-
},
|
|
27132
|
-
"executing": {
|
|
27133
|
-
"name": "executing",
|
|
27134
|
-
"description": "Event emitted by ComfyUIClient",
|
|
27135
|
-
"arguments": {}
|
|
27136
|
-
},
|
|
27137
|
-
"progress": {
|
|
27138
|
-
"name": "progress",
|
|
27139
|
-
"description": "Event emitted by ComfyUIClient",
|
|
27140
|
-
"arguments": {}
|
|
27141
|
-
},
|
|
27142
|
-
"executed": {
|
|
27143
|
-
"name": "executed",
|
|
27144
|
-
"description": "Event emitted by ComfyUIClient",
|
|
27145
|
-
"arguments": {}
|
|
27146
|
-
},
|
|
27147
|
-
"execution_cached": {
|
|
27148
|
-
"name": "execution_cached",
|
|
27149
|
-
"description": "Event emitted by ComfyUIClient",
|
|
27150
|
-
"arguments": {}
|
|
27151
|
-
},
|
|
27152
|
-
"execution_error": {
|
|
27153
|
-
"name": "execution_error",
|
|
27154
|
-
"description": "Event emitted by ComfyUIClient",
|
|
27155
|
-
"arguments": {}
|
|
27156
|
-
}
|
|
27157
|
-
},
|
|
27158
|
-
"state": {},
|
|
27159
|
-
"options": {},
|
|
27160
|
-
"envVars": [],
|
|
27161
|
-
"examples": [
|
|
27162
|
-
{
|
|
27163
|
-
"language": "ts",
|
|
27164
|
-
"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)"
|
|
27165
|
-
}
|
|
27166
|
-
],
|
|
27167
|
-
"types": {
|
|
27168
|
-
"WorkflowRunOptions": {
|
|
27169
|
-
"description": "",
|
|
27170
|
-
"properties": {
|
|
27171
|
-
"poll": {
|
|
27172
|
-
"type": "boolean",
|
|
27173
|
-
"description": "Use polling instead of WebSocket for tracking execution",
|
|
27174
|
-
"optional": true
|
|
27175
|
-
},
|
|
27176
|
-
"pollInterval": {
|
|
27177
|
-
"type": "number",
|
|
27178
|
-
"description": "Polling interval in ms (default 1000)",
|
|
27179
|
-
"optional": true
|
|
27180
|
-
},
|
|
27181
|
-
"inputMap": {
|
|
27182
|
-
"type": "InputMapping",
|
|
27183
|
-
"description": "Named input mapping: semantic name -> { nodeId, field }",
|
|
27184
|
-
"optional": true
|
|
27185
|
-
},
|
|
27186
|
-
"outputDir": {
|
|
27187
|
-
"type": "string",
|
|
27188
|
-
"description": "If provided, output images are downloaded to this directory",
|
|
27189
|
-
"optional": true
|
|
27190
|
-
}
|
|
27191
|
-
}
|
|
27192
|
-
},
|
|
27193
|
-
"WorkflowResult": {
|
|
27194
|
-
"description": "",
|
|
27195
|
-
"properties": {
|
|
27196
|
-
"promptId": {
|
|
27197
|
-
"type": "string",
|
|
27198
|
-
"description": ""
|
|
27199
|
-
},
|
|
27200
|
-
"outputs": {
|
|
27201
|
-
"type": "Record<string, any>",
|
|
27202
|
-
"description": ""
|
|
27203
|
-
},
|
|
27204
|
-
"images": {
|
|
27205
|
-
"type": "Array<{ filename: string; subfolder: string; type: string; localPath?: string }>",
|
|
27206
|
-
"description": "",
|
|
27207
|
-
"optional": true
|
|
27208
|
-
}
|
|
27209
|
-
}
|
|
27210
|
-
}
|
|
27211
|
-
}
|
|
27212
|
-
},
|
|
27213
|
-
{
|
|
27214
|
-
"id": "clients.elevenlabs",
|
|
27215
|
-
"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.",
|
|
27216
|
-
"shortcut": "clients.elevenlabs",
|
|
27217
|
-
"className": "ElevenLabsClient",
|
|
27218
|
-
"methods": {
|
|
27219
|
-
"beforeRequest": {
|
|
27220
|
-
"description": "Inject the xi-api-key header before each request.",
|
|
27221
|
-
"parameters": {},
|
|
27222
|
-
"required": [],
|
|
27223
|
-
"returns": "void"
|
|
27224
|
-
},
|
|
27225
|
-
"connect": {
|
|
27226
|
-
"description": "Validate the API key by listing available models.",
|
|
27227
|
-
"parameters": {},
|
|
27228
|
-
"required": [],
|
|
27229
|
-
"returns": "Promise<this>",
|
|
27230
|
-
"examples": [
|
|
27231
|
-
{
|
|
27232
|
-
"language": "ts",
|
|
27233
|
-
"code": "await el.connect()"
|
|
27234
|
-
}
|
|
27235
|
-
]
|
|
27236
|
-
},
|
|
27237
|
-
"listVoices": {
|
|
27238
|
-
"description": "List available voices with optional search and filtering.",
|
|
27239
|
-
"parameters": {
|
|
27240
|
-
"options": {
|
|
27241
|
-
"type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
|
|
27242
|
-
"description": "Query parameters for filtering voices"
|
|
27243
|
-
}
|
|
27244
|
-
},
|
|
27245
|
-
"required": [],
|
|
27246
|
-
"returns": "Promise<any>",
|
|
27247
|
-
"examples": [
|
|
27248
|
-
{
|
|
27249
|
-
"language": "ts",
|
|
27250
|
-
"code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
|
|
27251
|
-
}
|
|
27252
|
-
]
|
|
27253
|
-
},
|
|
27254
|
-
"getVoice": {
|
|
27255
|
-
"description": "Get details for a single voice.",
|
|
27288
|
+
"viewImage": {
|
|
27289
|
+
"description": "Download a generated image from ComfyUI as a Buffer.",
|
|
27256
27290
|
"parameters": {
|
|
27257
|
-
"
|
|
27291
|
+
"filename": {
|
|
27258
27292
|
"type": "string",
|
|
27259
|
-
"description": "The
|
|
27293
|
+
"description": "The image filename"
|
|
27294
|
+
},
|
|
27295
|
+
"subfolder": {
|
|
27296
|
+
"type": "any",
|
|
27297
|
+
"description": "Subfolder within the output directory"
|
|
27298
|
+
},
|
|
27299
|
+
"type": {
|
|
27300
|
+
"type": "any",
|
|
27301
|
+
"description": "Image type ('output', 'input', 'temp')"
|
|
27260
27302
|
}
|
|
27261
27303
|
},
|
|
27262
27304
|
"required": [
|
|
27263
|
-
"
|
|
27305
|
+
"filename"
|
|
27264
27306
|
],
|
|
27265
|
-
"returns": "Promise<
|
|
27266
|
-
"examples": [
|
|
27267
|
-
{
|
|
27268
|
-
"language": "ts",
|
|
27269
|
-
"code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
|
|
27270
|
-
}
|
|
27271
|
-
]
|
|
27307
|
+
"returns": "Promise<Buffer>"
|
|
27272
27308
|
},
|
|
27273
|
-
"
|
|
27274
|
-
"description": "
|
|
27309
|
+
"connectWs": {
|
|
27310
|
+
"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`.",
|
|
27275
27311
|
"parameters": {},
|
|
27276
27312
|
"required": [],
|
|
27277
|
-
"returns": "Promise<
|
|
27278
|
-
"examples": [
|
|
27279
|
-
{
|
|
27280
|
-
"language": "ts",
|
|
27281
|
-
"code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
|
|
27282
|
-
}
|
|
27283
|
-
]
|
|
27313
|
+
"returns": "Promise<void>"
|
|
27284
27314
|
},
|
|
27285
|
-
"
|
|
27286
|
-
"description": "
|
|
27315
|
+
"disconnectWs": {
|
|
27316
|
+
"description": "Close the WebSocket connection.",
|
|
27317
|
+
"parameters": {},
|
|
27318
|
+
"required": [],
|
|
27319
|
+
"returns": "void"
|
|
27320
|
+
},
|
|
27321
|
+
"toApiFormat": {
|
|
27322
|
+
"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.",
|
|
27287
27323
|
"parameters": {
|
|
27288
|
-
"
|
|
27289
|
-
"type": "string",
|
|
27290
|
-
"description": "
|
|
27291
|
-
},
|
|
27292
|
-
"options": {
|
|
27293
|
-
"type": "SynthesizeOptions",
|
|
27294
|
-
"description": "Voice, model, format, and voice settings overrides",
|
|
27295
|
-
"properties": {
|
|
27296
|
-
"voiceId": {
|
|
27297
|
-
"type": "string",
|
|
27298
|
-
"description": ""
|
|
27299
|
-
},
|
|
27300
|
-
"modelId": {
|
|
27301
|
-
"type": "string",
|
|
27302
|
-
"description": ""
|
|
27303
|
-
},
|
|
27304
|
-
"outputFormat": {
|
|
27305
|
-
"type": "string",
|
|
27306
|
-
"description": ""
|
|
27307
|
-
},
|
|
27308
|
-
"voiceSettings": {
|
|
27309
|
-
"type": "ElevenLabsVoiceSettings",
|
|
27310
|
-
"description": ""
|
|
27311
|
-
},
|
|
27312
|
-
"disableCache": {
|
|
27313
|
-
"type": "boolean",
|
|
27314
|
-
"description": ""
|
|
27315
|
-
}
|
|
27316
|
-
}
|
|
27324
|
+
"workflow": {
|
|
27325
|
+
"type": "Record<string, any>",
|
|
27326
|
+
"description": "Parameter workflow"
|
|
27317
27327
|
}
|
|
27318
27328
|
},
|
|
27319
27329
|
"required": [
|
|
27320
|
-
"
|
|
27330
|
+
"workflow"
|
|
27321
27331
|
],
|
|
27322
|
-
"returns": "Promise<
|
|
27323
|
-
"examples": [
|
|
27324
|
-
{
|
|
27325
|
-
"language": "ts",
|
|
27326
|
-
"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})"
|
|
27327
|
-
}
|
|
27328
|
-
]
|
|
27332
|
+
"returns": "Promise<Record<string, any>>"
|
|
27329
27333
|
},
|
|
27330
|
-
"
|
|
27331
|
-
"description": "
|
|
27334
|
+
"runWorkflow": {
|
|
27335
|
+
"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' } } ```",
|
|
27332
27336
|
"parameters": {
|
|
27333
|
-
"
|
|
27334
|
-
"type": "string",
|
|
27335
|
-
"description": "
|
|
27337
|
+
"workflow": {
|
|
27338
|
+
"type": "Record<string, any>",
|
|
27339
|
+
"description": "Parameter workflow"
|
|
27336
27340
|
},
|
|
27337
|
-
"
|
|
27338
|
-
"type": "string",
|
|
27339
|
-
"description": "
|
|
27341
|
+
"inputs": {
|
|
27342
|
+
"type": "Record<string, any>",
|
|
27343
|
+
"description": "Parameter inputs"
|
|
27340
27344
|
},
|
|
27341
27345
|
"options": {
|
|
27342
|
-
"type": "
|
|
27343
|
-
"description": "
|
|
27346
|
+
"type": "WorkflowRunOptions",
|
|
27347
|
+
"description": "Parameter options",
|
|
27344
27348
|
"properties": {
|
|
27345
|
-
"
|
|
27346
|
-
"type": "
|
|
27347
|
-
"description": ""
|
|
27348
|
-
},
|
|
27349
|
-
"modelId": {
|
|
27350
|
-
"type": "string",
|
|
27351
|
-
"description": ""
|
|
27349
|
+
"poll": {
|
|
27350
|
+
"type": "boolean",
|
|
27351
|
+
"description": "Use polling instead of WebSocket for tracking execution"
|
|
27352
27352
|
},
|
|
27353
|
-
"
|
|
27354
|
-
"type": "
|
|
27355
|
-
"description": ""
|
|
27353
|
+
"pollInterval": {
|
|
27354
|
+
"type": "number",
|
|
27355
|
+
"description": "Polling interval in ms (default 1000)"
|
|
27356
27356
|
},
|
|
27357
|
-
"
|
|
27358
|
-
"type": "
|
|
27359
|
-
"description": ""
|
|
27357
|
+
"inputMap": {
|
|
27358
|
+
"type": "InputMapping",
|
|
27359
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }"
|
|
27360
27360
|
},
|
|
27361
|
-
"
|
|
27362
|
-
"type": "
|
|
27363
|
-
"description": ""
|
|
27361
|
+
"outputDir": {
|
|
27362
|
+
"type": "string",
|
|
27363
|
+
"description": "If provided, output images are downloaded to this directory"
|
|
27364
27364
|
}
|
|
27365
27365
|
}
|
|
27366
27366
|
}
|
|
27367
27367
|
},
|
|
27368
27368
|
"required": [
|
|
27369
|
-
"
|
|
27370
|
-
"outputPath"
|
|
27369
|
+
"workflow"
|
|
27371
27370
|
],
|
|
27372
|
-
"returns": "Promise<
|
|
27373
|
-
"examples": [
|
|
27374
|
-
{
|
|
27375
|
-
"language": "ts",
|
|
27376
|
-
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
27377
|
-
}
|
|
27378
|
-
]
|
|
27371
|
+
"returns": "Promise<WorkflowResult>"
|
|
27379
27372
|
}
|
|
27380
27373
|
},
|
|
27381
27374
|
"getters": {
|
|
27382
|
-
"
|
|
27383
|
-
"description": "The
|
|
27375
|
+
"clientId": {
|
|
27376
|
+
"description": "The unique client ID used for WebSocket session tracking.",
|
|
27377
|
+
"returns": "string"
|
|
27378
|
+
},
|
|
27379
|
+
"wsURL": {
|
|
27380
|
+
"description": "The WebSocket URL derived from baseURL or overridden via options.",
|
|
27384
27381
|
"returns": "string"
|
|
27385
27382
|
}
|
|
27386
27383
|
},
|
|
27387
27384
|
"events": {
|
|
27388
|
-
"
|
|
27389
|
-
"name": "
|
|
27390
|
-
"description": "Event emitted by
|
|
27385
|
+
"execution_start": {
|
|
27386
|
+
"name": "execution_start",
|
|
27387
|
+
"description": "Event emitted by ComfyUIClient",
|
|
27391
27388
|
"arguments": {}
|
|
27392
27389
|
},
|
|
27393
|
-
"
|
|
27394
|
-
"name": "
|
|
27395
|
-
"description": "Event emitted by
|
|
27390
|
+
"execution_complete": {
|
|
27391
|
+
"name": "execution_complete",
|
|
27392
|
+
"description": "Event emitted by ComfyUIClient",
|
|
27396
27393
|
"arguments": {}
|
|
27397
27394
|
},
|
|
27398
|
-
"
|
|
27399
|
-
"name": "
|
|
27400
|
-
"description": "Event emitted by
|
|
27395
|
+
"executing": {
|
|
27396
|
+
"name": "executing",
|
|
27397
|
+
"description": "Event emitted by ComfyUIClient",
|
|
27398
|
+
"arguments": {}
|
|
27399
|
+
},
|
|
27400
|
+
"progress": {
|
|
27401
|
+
"name": "progress",
|
|
27402
|
+
"description": "Event emitted by ComfyUIClient",
|
|
27403
|
+
"arguments": {}
|
|
27404
|
+
},
|
|
27405
|
+
"executed": {
|
|
27406
|
+
"name": "executed",
|
|
27407
|
+
"description": "Event emitted by ComfyUIClient",
|
|
27408
|
+
"arguments": {}
|
|
27409
|
+
},
|
|
27410
|
+
"execution_cached": {
|
|
27411
|
+
"name": "execution_cached",
|
|
27412
|
+
"description": "Event emitted by ComfyUIClient",
|
|
27413
|
+
"arguments": {}
|
|
27414
|
+
},
|
|
27415
|
+
"execution_error": {
|
|
27416
|
+
"name": "execution_error",
|
|
27417
|
+
"description": "Event emitted by ComfyUIClient",
|
|
27401
27418
|
"arguments": {}
|
|
27402
27419
|
}
|
|
27403
27420
|
},
|
|
@@ -27407,65 +27424,48 @@ export const introspectionData = [
|
|
|
27407
27424
|
"examples": [
|
|
27408
27425
|
{
|
|
27409
27426
|
"language": "ts",
|
|
27410
|
-
"code": "const
|
|
27427
|
+
"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)"
|
|
27411
27428
|
}
|
|
27412
27429
|
],
|
|
27413
27430
|
"types": {
|
|
27414
|
-
"
|
|
27431
|
+
"WorkflowRunOptions": {
|
|
27415
27432
|
"description": "",
|
|
27416
27433
|
"properties": {
|
|
27417
|
-
"
|
|
27418
|
-
"type": "
|
|
27419
|
-
"description": "",
|
|
27420
|
-
"optional": true
|
|
27421
|
-
},
|
|
27422
|
-
"modelId": {
|
|
27423
|
-
"type": "string",
|
|
27424
|
-
"description": "",
|
|
27434
|
+
"poll": {
|
|
27435
|
+
"type": "boolean",
|
|
27436
|
+
"description": "Use polling instead of WebSocket for tracking execution",
|
|
27425
27437
|
"optional": true
|
|
27426
27438
|
},
|
|
27427
|
-
"
|
|
27428
|
-
"type": "
|
|
27429
|
-
"description": "",
|
|
27439
|
+
"pollInterval": {
|
|
27440
|
+
"type": "number",
|
|
27441
|
+
"description": "Polling interval in ms (default 1000)",
|
|
27430
27442
|
"optional": true
|
|
27431
27443
|
},
|
|
27432
|
-
"
|
|
27433
|
-
"type": "
|
|
27434
|
-
"description": "",
|
|
27444
|
+
"inputMap": {
|
|
27445
|
+
"type": "InputMapping",
|
|
27446
|
+
"description": "Named input mapping: semantic name -> { nodeId, field }",
|
|
27435
27447
|
"optional": true
|
|
27436
27448
|
},
|
|
27437
|
-
"
|
|
27438
|
-
"type": "
|
|
27439
|
-
"description": "",
|
|
27449
|
+
"outputDir": {
|
|
27450
|
+
"type": "string",
|
|
27451
|
+
"description": "If provided, output images are downloaded to this directory",
|
|
27440
27452
|
"optional": true
|
|
27441
27453
|
}
|
|
27442
27454
|
}
|
|
27443
27455
|
},
|
|
27444
|
-
"
|
|
27456
|
+
"WorkflowResult": {
|
|
27445
27457
|
"description": "",
|
|
27446
27458
|
"properties": {
|
|
27447
|
-
"
|
|
27448
|
-
"type": "
|
|
27449
|
-
"description": ""
|
|
27450
|
-
"optional": true
|
|
27451
|
-
},
|
|
27452
|
-
"similarityBoost": {
|
|
27453
|
-
"type": "number",
|
|
27454
|
-
"description": "",
|
|
27455
|
-
"optional": true
|
|
27456
|
-
},
|
|
27457
|
-
"style": {
|
|
27458
|
-
"type": "number",
|
|
27459
|
-
"description": "",
|
|
27460
|
-
"optional": true
|
|
27459
|
+
"promptId": {
|
|
27460
|
+
"type": "string",
|
|
27461
|
+
"description": ""
|
|
27461
27462
|
},
|
|
27462
|
-
"
|
|
27463
|
-
"type": "
|
|
27464
|
-
"description": ""
|
|
27465
|
-
"optional": true
|
|
27463
|
+
"outputs": {
|
|
27464
|
+
"type": "Record<string, any>",
|
|
27465
|
+
"description": ""
|
|
27466
27466
|
},
|
|
27467
|
-
"
|
|
27468
|
-
"type": "
|
|
27467
|
+
"images": {
|
|
27468
|
+
"type": "Array<{ filename: string; subfolder: string; type: string; localPath?: string }>",
|
|
27469
27469
|
"description": "",
|
|
27470
27470
|
"optional": true
|
|
27471
27471
|
}
|