@soederpop/luca 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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-19T00:28:06.079Z
4
+ // Generated at: 2026-03-19T18:52:31.259Z
5
5
 
6
6
  setBuildTimeData('features.googleDocs', {
7
7
  "id": "features.googleDocs",
@@ -9787,6 +9787,208 @@ setBuildTimeData('clients.openai', {
9787
9787
  ]
9788
9788
  });
9789
9789
 
9790
+ setBuildTimeData('clients.elevenlabs', {
9791
+ "id": "clients.elevenlabs",
9792
+ "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.",
9793
+ "shortcut": "clients.elevenlabs",
9794
+ "className": "ElevenLabsClient",
9795
+ "methods": {
9796
+ "beforeRequest": {
9797
+ "description": "Inject the xi-api-key header before each request.",
9798
+ "parameters": {},
9799
+ "required": [],
9800
+ "returns": "void"
9801
+ },
9802
+ "connect": {
9803
+ "description": "Validate the API key by listing available models.",
9804
+ "parameters": {},
9805
+ "required": [],
9806
+ "returns": "Promise<this>",
9807
+ "examples": [
9808
+ {
9809
+ "language": "ts",
9810
+ "code": "await el.connect()"
9811
+ }
9812
+ ]
9813
+ },
9814
+ "listVoices": {
9815
+ "description": "List available voices with optional search and filtering.",
9816
+ "parameters": {
9817
+ "options": {
9818
+ "type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
9819
+ "description": "Query parameters for filtering voices"
9820
+ }
9821
+ },
9822
+ "required": [],
9823
+ "returns": "Promise<any>",
9824
+ "examples": [
9825
+ {
9826
+ "language": "ts",
9827
+ "code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
9828
+ }
9829
+ ]
9830
+ },
9831
+ "getVoice": {
9832
+ "description": "Get details for a single voice.",
9833
+ "parameters": {
9834
+ "voiceId": {
9835
+ "type": "string",
9836
+ "description": "The voice ID to look up"
9837
+ }
9838
+ },
9839
+ "required": [
9840
+ "voiceId"
9841
+ ],
9842
+ "returns": "Promise<any>",
9843
+ "examples": [
9844
+ {
9845
+ "language": "ts",
9846
+ "code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
9847
+ }
9848
+ ]
9849
+ },
9850
+ "listModels": {
9851
+ "description": "List available TTS models.",
9852
+ "parameters": {},
9853
+ "required": [],
9854
+ "returns": "Promise<any[]>",
9855
+ "examples": [
9856
+ {
9857
+ "language": "ts",
9858
+ "code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
9859
+ }
9860
+ ]
9861
+ },
9862
+ "synthesize": {
9863
+ "description": "Synthesize speech from text, returning audio as a Buffer.",
9864
+ "parameters": {
9865
+ "text": {
9866
+ "type": "string",
9867
+ "description": "The text to convert to speech"
9868
+ },
9869
+ "options": {
9870
+ "type": "SynthesizeOptions",
9871
+ "description": "Voice, model, format, and voice settings overrides",
9872
+ "properties": {
9873
+ "voiceId": {
9874
+ "type": "string",
9875
+ "description": ""
9876
+ },
9877
+ "modelId": {
9878
+ "type": "string",
9879
+ "description": ""
9880
+ },
9881
+ "outputFormat": {
9882
+ "type": "string",
9883
+ "description": ""
9884
+ },
9885
+ "voiceSettings": {
9886
+ "type": "ElevenLabsVoiceSettings",
9887
+ "description": ""
9888
+ },
9889
+ "disableCache": {
9890
+ "type": "boolean",
9891
+ "description": ""
9892
+ }
9893
+ }
9894
+ }
9895
+ },
9896
+ "required": [
9897
+ "text"
9898
+ ],
9899
+ "returns": "Promise<Buffer>",
9900
+ "examples": [
9901
+ {
9902
+ "language": "ts",
9903
+ "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})"
9904
+ }
9905
+ ]
9906
+ },
9907
+ "say": {
9908
+ "description": "Synthesize speech and write the audio to a file.",
9909
+ "parameters": {
9910
+ "text": {
9911
+ "type": "string",
9912
+ "description": "The text to convert to speech"
9913
+ },
9914
+ "outputPath": {
9915
+ "type": "string",
9916
+ "description": "File path to write the audio to"
9917
+ },
9918
+ "options": {
9919
+ "type": "SynthesizeOptions",
9920
+ "description": "Voice, model, format, and voice settings overrides",
9921
+ "properties": {
9922
+ "voiceId": {
9923
+ "type": "string",
9924
+ "description": ""
9925
+ },
9926
+ "modelId": {
9927
+ "type": "string",
9928
+ "description": ""
9929
+ },
9930
+ "outputFormat": {
9931
+ "type": "string",
9932
+ "description": ""
9933
+ },
9934
+ "voiceSettings": {
9935
+ "type": "ElevenLabsVoiceSettings",
9936
+ "description": ""
9937
+ },
9938
+ "disableCache": {
9939
+ "type": "boolean",
9940
+ "description": ""
9941
+ }
9942
+ }
9943
+ }
9944
+ },
9945
+ "required": [
9946
+ "text",
9947
+ "outputPath"
9948
+ ],
9949
+ "returns": "Promise<string>",
9950
+ "examples": [
9951
+ {
9952
+ "language": "ts",
9953
+ "code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
9954
+ }
9955
+ ]
9956
+ }
9957
+ },
9958
+ "getters": {
9959
+ "apiKey": {
9960
+ "description": "The resolved API key from options or environment.",
9961
+ "returns": "string"
9962
+ }
9963
+ },
9964
+ "events": {
9965
+ "failure": {
9966
+ "name": "failure",
9967
+ "description": "Event emitted by ElevenLabsClient",
9968
+ "arguments": {}
9969
+ },
9970
+ "voices": {
9971
+ "name": "voices",
9972
+ "description": "Event emitted by ElevenLabsClient",
9973
+ "arguments": {}
9974
+ },
9975
+ "speech": {
9976
+ "name": "speech",
9977
+ "description": "Event emitted by ElevenLabsClient",
9978
+ "arguments": {}
9979
+ }
9980
+ },
9981
+ "state": {},
9982
+ "options": {},
9983
+ "envVars": [],
9984
+ "examples": [
9985
+ {
9986
+ "language": "ts",
9987
+ "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"
9988
+ }
9989
+ ]
9990
+ });
9991
+
9790
9992
  setBuildTimeData('clients.supabase', {
9791
9993
  "id": "clients.supabase",
9792
9994
  "description": "Supabase client for the Luca container system. Wraps the official `@supabase/supabase-js` SDK and exposes it through Luca's typed state, events, and introspection system. The SDK is isomorphic so this single implementation works in both Node and browser containers. Use `client.sdk` for full SDK access, or use the convenience wrappers for common operations (auth, database queries, storage, edge functions, realtime).",
@@ -10178,251 +10380,49 @@ setBuildTimeData('clients.comfyui', {
10178
10380
  }
10179
10381
  },
10180
10382
  "getters": {
10181
- "clientId": {
10182
- "description": "The unique client ID used for WebSocket session tracking.",
10183
- "returns": "string"
10184
- },
10185
- "wsURL": {
10186
- "description": "The WebSocket URL derived from baseURL or overridden via options.",
10187
- "returns": "string"
10188
- }
10189
- },
10190
- "events": {
10191
- "execution_start": {
10192
- "name": "execution_start",
10193
- "description": "Event emitted by ComfyUIClient",
10194
- "arguments": {}
10195
- },
10196
- "execution_complete": {
10197
- "name": "execution_complete",
10198
- "description": "Event emitted by ComfyUIClient",
10199
- "arguments": {}
10200
- },
10201
- "executing": {
10202
- "name": "executing",
10203
- "description": "Event emitted by ComfyUIClient",
10204
- "arguments": {}
10205
- },
10206
- "progress": {
10207
- "name": "progress",
10208
- "description": "Event emitted by ComfyUIClient",
10209
- "arguments": {}
10210
- },
10211
- "executed": {
10212
- "name": "executed",
10213
- "description": "Event emitted by ComfyUIClient",
10214
- "arguments": {}
10215
- },
10216
- "execution_cached": {
10217
- "name": "execution_cached",
10218
- "description": "Event emitted by ComfyUIClient",
10219
- "arguments": {}
10220
- },
10221
- "execution_error": {
10222
- "name": "execution_error",
10223
- "description": "Event emitted by ComfyUIClient",
10224
- "arguments": {}
10225
- }
10226
- },
10227
- "state": {},
10228
- "options": {},
10229
- "envVars": [],
10230
- "examples": [
10231
- {
10232
- "language": "ts",
10233
- "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)"
10234
- }
10235
- ]
10236
- });
10237
-
10238
- setBuildTimeData('clients.elevenlabs', {
10239
- "id": "clients.elevenlabs",
10240
- "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.",
10241
- "shortcut": "clients.elevenlabs",
10242
- "className": "ElevenLabsClient",
10243
- "methods": {
10244
- "beforeRequest": {
10245
- "description": "Inject the xi-api-key header before each request.",
10246
- "parameters": {},
10247
- "required": [],
10248
- "returns": "void"
10249
- },
10250
- "connect": {
10251
- "description": "Validate the API key by listing available models.",
10252
- "parameters": {},
10253
- "required": [],
10254
- "returns": "Promise<this>",
10255
- "examples": [
10256
- {
10257
- "language": "ts",
10258
- "code": "await el.connect()"
10259
- }
10260
- ]
10261
- },
10262
- "listVoices": {
10263
- "description": "List available voices with optional search and filtering.",
10264
- "parameters": {
10265
- "options": {
10266
- "type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
10267
- "description": "Query parameters for filtering voices"
10268
- }
10269
- },
10270
- "required": [],
10271
- "returns": "Promise<any>",
10272
- "examples": [
10273
- {
10274
- "language": "ts",
10275
- "code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
10276
- }
10277
- ]
10278
- },
10279
- "getVoice": {
10280
- "description": "Get details for a single voice.",
10281
- "parameters": {
10282
- "voiceId": {
10283
- "type": "string",
10284
- "description": "The voice ID to look up"
10285
- }
10286
- },
10287
- "required": [
10288
- "voiceId"
10289
- ],
10290
- "returns": "Promise<any>",
10291
- "examples": [
10292
- {
10293
- "language": "ts",
10294
- "code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
10295
- }
10296
- ]
10297
- },
10298
- "listModels": {
10299
- "description": "List available TTS models.",
10300
- "parameters": {},
10301
- "required": [],
10302
- "returns": "Promise<any[]>",
10303
- "examples": [
10304
- {
10305
- "language": "ts",
10306
- "code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
10307
- }
10308
- ]
10309
- },
10310
- "synthesize": {
10311
- "description": "Synthesize speech from text, returning audio as a Buffer.",
10312
- "parameters": {
10313
- "text": {
10314
- "type": "string",
10315
- "description": "The text to convert to speech"
10316
- },
10317
- "options": {
10318
- "type": "SynthesizeOptions",
10319
- "description": "Voice, model, format, and voice settings overrides",
10320
- "properties": {
10321
- "voiceId": {
10322
- "type": "string",
10323
- "description": ""
10324
- },
10325
- "modelId": {
10326
- "type": "string",
10327
- "description": ""
10328
- },
10329
- "outputFormat": {
10330
- "type": "string",
10331
- "description": ""
10332
- },
10333
- "voiceSettings": {
10334
- "type": "ElevenLabsVoiceSettings",
10335
- "description": ""
10336
- },
10337
- "disableCache": {
10338
- "type": "boolean",
10339
- "description": ""
10340
- }
10341
- }
10342
- }
10343
- },
10344
- "required": [
10345
- "text"
10346
- ],
10347
- "returns": "Promise<Buffer>",
10348
- "examples": [
10349
- {
10350
- "language": "ts",
10351
- "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})"
10352
- }
10353
- ]
10354
- },
10355
- "say": {
10356
- "description": "Synthesize speech and write the audio to a file.",
10357
- "parameters": {
10358
- "text": {
10359
- "type": "string",
10360
- "description": "The text to convert to speech"
10361
- },
10362
- "outputPath": {
10363
- "type": "string",
10364
- "description": "File path to write the audio to"
10365
- },
10366
- "options": {
10367
- "type": "SynthesizeOptions",
10368
- "description": "Voice, model, format, and voice settings overrides",
10369
- "properties": {
10370
- "voiceId": {
10371
- "type": "string",
10372
- "description": ""
10373
- },
10374
- "modelId": {
10375
- "type": "string",
10376
- "description": ""
10377
- },
10378
- "outputFormat": {
10379
- "type": "string",
10380
- "description": ""
10381
- },
10382
- "voiceSettings": {
10383
- "type": "ElevenLabsVoiceSettings",
10384
- "description": ""
10385
- },
10386
- "disableCache": {
10387
- "type": "boolean",
10388
- "description": ""
10389
- }
10390
- }
10391
- }
10392
- },
10393
- "required": [
10394
- "text",
10395
- "outputPath"
10396
- ],
10397
- "returns": "Promise<string>",
10398
- "examples": [
10399
- {
10400
- "language": "ts",
10401
- "code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
10402
- }
10403
- ]
10404
- }
10405
- },
10406
- "getters": {
10407
- "apiKey": {
10408
- "description": "The resolved API key from options or environment.",
10383
+ "clientId": {
10384
+ "description": "The unique client ID used for WebSocket session tracking.",
10385
+ "returns": "string"
10386
+ },
10387
+ "wsURL": {
10388
+ "description": "The WebSocket URL derived from baseURL or overridden via options.",
10409
10389
  "returns": "string"
10410
10390
  }
10411
10391
  },
10412
10392
  "events": {
10413
- "failure": {
10414
- "name": "failure",
10415
- "description": "Event emitted by ElevenLabsClient",
10393
+ "execution_start": {
10394
+ "name": "execution_start",
10395
+ "description": "Event emitted by ComfyUIClient",
10416
10396
  "arguments": {}
10417
10397
  },
10418
- "voices": {
10419
- "name": "voices",
10420
- "description": "Event emitted by ElevenLabsClient",
10398
+ "execution_complete": {
10399
+ "name": "execution_complete",
10400
+ "description": "Event emitted by ComfyUIClient",
10421
10401
  "arguments": {}
10422
10402
  },
10423
- "speech": {
10424
- "name": "speech",
10425
- "description": "Event emitted by ElevenLabsClient",
10403
+ "executing": {
10404
+ "name": "executing",
10405
+ "description": "Event emitted by ComfyUIClient",
10406
+ "arguments": {}
10407
+ },
10408
+ "progress": {
10409
+ "name": "progress",
10410
+ "description": "Event emitted by ComfyUIClient",
10411
+ "arguments": {}
10412
+ },
10413
+ "executed": {
10414
+ "name": "executed",
10415
+ "description": "Event emitted by ComfyUIClient",
10416
+ "arguments": {}
10417
+ },
10418
+ "execution_cached": {
10419
+ "name": "execution_cached",
10420
+ "description": "Event emitted by ComfyUIClient",
10421
+ "arguments": {}
10422
+ },
10423
+ "execution_error": {
10424
+ "name": "execution_error",
10425
+ "description": "Event emitted by ComfyUIClient",
10426
10426
  "arguments": {}
10427
10427
  }
10428
10428
  },
@@ -10432,7 +10432,7 @@ setBuildTimeData('clients.elevenlabs', {
10432
10432
  "examples": [
10433
10433
  {
10434
10434
  "language": "ts",
10435
- "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"
10435
+ "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)"
10436
10436
  }
10437
10437
  ]
10438
10438
  });
@@ -23181,56 +23181,257 @@ export const introspectionData = [
23181
23181
  }
23182
23182
  },
23183
23183
  "required": [
23184
- "messages"
23184
+ "messages"
23185
+ ],
23186
+ "returns": "Promise<string>",
23187
+ "examples": [
23188
+ {
23189
+ "language": "ts",
23190
+ "code": "const reply = await openai.chat([\n { role: 'system', content: 'You are a pirate.' },\n { role: 'user', content: 'Hello!' }\n])"
23191
+ }
23192
+ ]
23193
+ }
23194
+ },
23195
+ "getters": {
23196
+ "defaultModel": {
23197
+ "description": "The default model used for completions, from options or 'gpt-4o'.",
23198
+ "returns": "string"
23199
+ },
23200
+ "raw": {
23201
+ "description": "The underlying OpenAI SDK instance for advanced use cases.",
23202
+ "returns": "OpenAI"
23203
+ }
23204
+ },
23205
+ "events": {
23206
+ "connected": {
23207
+ "name": "connected",
23208
+ "description": "Event emitted by OpenAIClient",
23209
+ "arguments": {}
23210
+ },
23211
+ "failure": {
23212
+ "name": "failure",
23213
+ "description": "Event emitted by OpenAIClient",
23214
+ "arguments": {}
23215
+ },
23216
+ "completion": {
23217
+ "name": "completion",
23218
+ "description": "Event emitted by OpenAIClient",
23219
+ "arguments": {}
23220
+ },
23221
+ "embedding": {
23222
+ "name": "embedding",
23223
+ "description": "Event emitted by OpenAIClient",
23224
+ "arguments": {}
23225
+ },
23226
+ "image": {
23227
+ "name": "image",
23228
+ "description": "Event emitted by OpenAIClient",
23229
+ "arguments": {}
23230
+ },
23231
+ "models": {
23232
+ "name": "models",
23233
+ "description": "Event emitted by OpenAIClient",
23234
+ "arguments": {}
23235
+ }
23236
+ },
23237
+ "state": {},
23238
+ "options": {},
23239
+ "envVars": [],
23240
+ "examples": [
23241
+ {
23242
+ "language": "ts",
23243
+ "code": "const openai = container.client('openai', { defaultModel: 'gpt-4o' })\nconst answer = await openai.ask('What is the meaning of life?')\nconsole.log(answer)"
23244
+ }
23245
+ ]
23246
+ },
23247
+ {
23248
+ "id": "clients.elevenlabs",
23249
+ "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.",
23250
+ "shortcut": "clients.elevenlabs",
23251
+ "className": "ElevenLabsClient",
23252
+ "methods": {
23253
+ "beforeRequest": {
23254
+ "description": "Inject the xi-api-key header before each request.",
23255
+ "parameters": {},
23256
+ "required": [],
23257
+ "returns": "void"
23258
+ },
23259
+ "connect": {
23260
+ "description": "Validate the API key by listing available models.",
23261
+ "parameters": {},
23262
+ "required": [],
23263
+ "returns": "Promise<this>",
23264
+ "examples": [
23265
+ {
23266
+ "language": "ts",
23267
+ "code": "await el.connect()"
23268
+ }
23269
+ ]
23270
+ },
23271
+ "listVoices": {
23272
+ "description": "List available voices with optional search and filtering.",
23273
+ "parameters": {
23274
+ "options": {
23275
+ "type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
23276
+ "description": "Query parameters for filtering voices"
23277
+ }
23278
+ },
23279
+ "required": [],
23280
+ "returns": "Promise<any>",
23281
+ "examples": [
23282
+ {
23283
+ "language": "ts",
23284
+ "code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
23285
+ }
23286
+ ]
23287
+ },
23288
+ "getVoice": {
23289
+ "description": "Get details for a single voice.",
23290
+ "parameters": {
23291
+ "voiceId": {
23292
+ "type": "string",
23293
+ "description": "The voice ID to look up"
23294
+ }
23295
+ },
23296
+ "required": [
23297
+ "voiceId"
23298
+ ],
23299
+ "returns": "Promise<any>",
23300
+ "examples": [
23301
+ {
23302
+ "language": "ts",
23303
+ "code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
23304
+ }
23305
+ ]
23306
+ },
23307
+ "listModels": {
23308
+ "description": "List available TTS models.",
23309
+ "parameters": {},
23310
+ "required": [],
23311
+ "returns": "Promise<any[]>",
23312
+ "examples": [
23313
+ {
23314
+ "language": "ts",
23315
+ "code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
23316
+ }
23317
+ ]
23318
+ },
23319
+ "synthesize": {
23320
+ "description": "Synthesize speech from text, returning audio as a Buffer.",
23321
+ "parameters": {
23322
+ "text": {
23323
+ "type": "string",
23324
+ "description": "The text to convert to speech"
23325
+ },
23326
+ "options": {
23327
+ "type": "SynthesizeOptions",
23328
+ "description": "Voice, model, format, and voice settings overrides",
23329
+ "properties": {
23330
+ "voiceId": {
23331
+ "type": "string",
23332
+ "description": ""
23333
+ },
23334
+ "modelId": {
23335
+ "type": "string",
23336
+ "description": ""
23337
+ },
23338
+ "outputFormat": {
23339
+ "type": "string",
23340
+ "description": ""
23341
+ },
23342
+ "voiceSettings": {
23343
+ "type": "ElevenLabsVoiceSettings",
23344
+ "description": ""
23345
+ },
23346
+ "disableCache": {
23347
+ "type": "boolean",
23348
+ "description": ""
23349
+ }
23350
+ }
23351
+ }
23352
+ },
23353
+ "required": [
23354
+ "text"
23355
+ ],
23356
+ "returns": "Promise<Buffer>",
23357
+ "examples": [
23358
+ {
23359
+ "language": "ts",
23360
+ "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})"
23361
+ }
23362
+ ]
23363
+ },
23364
+ "say": {
23365
+ "description": "Synthesize speech and write the audio to a file.",
23366
+ "parameters": {
23367
+ "text": {
23368
+ "type": "string",
23369
+ "description": "The text to convert to speech"
23370
+ },
23371
+ "outputPath": {
23372
+ "type": "string",
23373
+ "description": "File path to write the audio to"
23374
+ },
23375
+ "options": {
23376
+ "type": "SynthesizeOptions",
23377
+ "description": "Voice, model, format, and voice settings overrides",
23378
+ "properties": {
23379
+ "voiceId": {
23380
+ "type": "string",
23381
+ "description": ""
23382
+ },
23383
+ "modelId": {
23384
+ "type": "string",
23385
+ "description": ""
23386
+ },
23387
+ "outputFormat": {
23388
+ "type": "string",
23389
+ "description": ""
23390
+ },
23391
+ "voiceSettings": {
23392
+ "type": "ElevenLabsVoiceSettings",
23393
+ "description": ""
23394
+ },
23395
+ "disableCache": {
23396
+ "type": "boolean",
23397
+ "description": ""
23398
+ }
23399
+ }
23400
+ }
23401
+ },
23402
+ "required": [
23403
+ "text",
23404
+ "outputPath"
23185
23405
  ],
23186
23406
  "returns": "Promise<string>",
23187
23407
  "examples": [
23188
23408
  {
23189
23409
  "language": "ts",
23190
- "code": "const reply = await openai.chat([\n { role: 'system', content: 'You are a pirate.' },\n { role: 'user', content: 'Hello!' }\n])"
23410
+ "code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
23191
23411
  }
23192
23412
  ]
23193
23413
  }
23194
23414
  },
23195
23415
  "getters": {
23196
- "defaultModel": {
23197
- "description": "The default model used for completions, from options or 'gpt-4o'.",
23416
+ "apiKey": {
23417
+ "description": "The resolved API key from options or environment.",
23198
23418
  "returns": "string"
23199
- },
23200
- "raw": {
23201
- "description": "The underlying OpenAI SDK instance for advanced use cases.",
23202
- "returns": "OpenAI"
23203
23419
  }
23204
23420
  },
23205
23421
  "events": {
23206
- "connected": {
23207
- "name": "connected",
23208
- "description": "Event emitted by OpenAIClient",
23209
- "arguments": {}
23210
- },
23211
23422
  "failure": {
23212
23423
  "name": "failure",
23213
- "description": "Event emitted by OpenAIClient",
23214
- "arguments": {}
23215
- },
23216
- "completion": {
23217
- "name": "completion",
23218
- "description": "Event emitted by OpenAIClient",
23219
- "arguments": {}
23220
- },
23221
- "embedding": {
23222
- "name": "embedding",
23223
- "description": "Event emitted by OpenAIClient",
23424
+ "description": "Event emitted by ElevenLabsClient",
23224
23425
  "arguments": {}
23225
23426
  },
23226
- "image": {
23227
- "name": "image",
23228
- "description": "Event emitted by OpenAIClient",
23427
+ "voices": {
23428
+ "name": "voices",
23429
+ "description": "Event emitted by ElevenLabsClient",
23229
23430
  "arguments": {}
23230
23431
  },
23231
- "models": {
23232
- "name": "models",
23233
- "description": "Event emitted by OpenAIClient",
23432
+ "speech": {
23433
+ "name": "speech",
23434
+ "description": "Event emitted by ElevenLabsClient",
23234
23435
  "arguments": {}
23235
23436
  }
23236
23437
  },
@@ -23240,7 +23441,7 @@ export const introspectionData = [
23240
23441
  "examples": [
23241
23442
  {
23242
23443
  "language": "ts",
23243
- "code": "const openai = container.client('openai', { defaultModel: 'gpt-4o' })\nconst answer = await openai.ask('What is the meaning of life?')\nconsole.log(answer)"
23444
+ "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"
23244
23445
  }
23245
23446
  ]
23246
23447
  },
@@ -23690,207 +23891,6 @@ export const introspectionData = [
23690
23891
  }
23691
23892
  ]
23692
23893
  },
23693
- {
23694
- "id": "clients.elevenlabs",
23695
- "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.",
23696
- "shortcut": "clients.elevenlabs",
23697
- "className": "ElevenLabsClient",
23698
- "methods": {
23699
- "beforeRequest": {
23700
- "description": "Inject the xi-api-key header before each request.",
23701
- "parameters": {},
23702
- "required": [],
23703
- "returns": "void"
23704
- },
23705
- "connect": {
23706
- "description": "Validate the API key by listing available models.",
23707
- "parameters": {},
23708
- "required": [],
23709
- "returns": "Promise<this>",
23710
- "examples": [
23711
- {
23712
- "language": "ts",
23713
- "code": "await el.connect()"
23714
- }
23715
- ]
23716
- },
23717
- "listVoices": {
23718
- "description": "List available voices with optional search and filtering.",
23719
- "parameters": {
23720
- "options": {
23721
- "type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
23722
- "description": "Query parameters for filtering voices"
23723
- }
23724
- },
23725
- "required": [],
23726
- "returns": "Promise<any>",
23727
- "examples": [
23728
- {
23729
- "language": "ts",
23730
- "code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
23731
- }
23732
- ]
23733
- },
23734
- "getVoice": {
23735
- "description": "Get details for a single voice.",
23736
- "parameters": {
23737
- "voiceId": {
23738
- "type": "string",
23739
- "description": "The voice ID to look up"
23740
- }
23741
- },
23742
- "required": [
23743
- "voiceId"
23744
- ],
23745
- "returns": "Promise<any>",
23746
- "examples": [
23747
- {
23748
- "language": "ts",
23749
- "code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
23750
- }
23751
- ]
23752
- },
23753
- "listModels": {
23754
- "description": "List available TTS models.",
23755
- "parameters": {},
23756
- "required": [],
23757
- "returns": "Promise<any[]>",
23758
- "examples": [
23759
- {
23760
- "language": "ts",
23761
- "code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
23762
- }
23763
- ]
23764
- },
23765
- "synthesize": {
23766
- "description": "Synthesize speech from text, returning audio as a Buffer.",
23767
- "parameters": {
23768
- "text": {
23769
- "type": "string",
23770
- "description": "The text to convert to speech"
23771
- },
23772
- "options": {
23773
- "type": "SynthesizeOptions",
23774
- "description": "Voice, model, format, and voice settings overrides",
23775
- "properties": {
23776
- "voiceId": {
23777
- "type": "string",
23778
- "description": ""
23779
- },
23780
- "modelId": {
23781
- "type": "string",
23782
- "description": ""
23783
- },
23784
- "outputFormat": {
23785
- "type": "string",
23786
- "description": ""
23787
- },
23788
- "voiceSettings": {
23789
- "type": "ElevenLabsVoiceSettings",
23790
- "description": ""
23791
- },
23792
- "disableCache": {
23793
- "type": "boolean",
23794
- "description": ""
23795
- }
23796
- }
23797
- }
23798
- },
23799
- "required": [
23800
- "text"
23801
- ],
23802
- "returns": "Promise<Buffer>",
23803
- "examples": [
23804
- {
23805
- "language": "ts",
23806
- "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})"
23807
- }
23808
- ]
23809
- },
23810
- "say": {
23811
- "description": "Synthesize speech and write the audio to a file.",
23812
- "parameters": {
23813
- "text": {
23814
- "type": "string",
23815
- "description": "The text to convert to speech"
23816
- },
23817
- "outputPath": {
23818
- "type": "string",
23819
- "description": "File path to write the audio to"
23820
- },
23821
- "options": {
23822
- "type": "SynthesizeOptions",
23823
- "description": "Voice, model, format, and voice settings overrides",
23824
- "properties": {
23825
- "voiceId": {
23826
- "type": "string",
23827
- "description": ""
23828
- },
23829
- "modelId": {
23830
- "type": "string",
23831
- "description": ""
23832
- },
23833
- "outputFormat": {
23834
- "type": "string",
23835
- "description": ""
23836
- },
23837
- "voiceSettings": {
23838
- "type": "ElevenLabsVoiceSettings",
23839
- "description": ""
23840
- },
23841
- "disableCache": {
23842
- "type": "boolean",
23843
- "description": ""
23844
- }
23845
- }
23846
- }
23847
- },
23848
- "required": [
23849
- "text",
23850
- "outputPath"
23851
- ],
23852
- "returns": "Promise<string>",
23853
- "examples": [
23854
- {
23855
- "language": "ts",
23856
- "code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
23857
- }
23858
- ]
23859
- }
23860
- },
23861
- "getters": {
23862
- "apiKey": {
23863
- "description": "The resolved API key from options or environment.",
23864
- "returns": "string"
23865
- }
23866
- },
23867
- "events": {
23868
- "failure": {
23869
- "name": "failure",
23870
- "description": "Event emitted by ElevenLabsClient",
23871
- "arguments": {}
23872
- },
23873
- "voices": {
23874
- "name": "voices",
23875
- "description": "Event emitted by ElevenLabsClient",
23876
- "arguments": {}
23877
- },
23878
- "speech": {
23879
- "name": "speech",
23880
- "description": "Event emitted by ElevenLabsClient",
23881
- "arguments": {}
23882
- }
23883
- },
23884
- "state": {},
23885
- "options": {},
23886
- "envVars": [],
23887
- "examples": [
23888
- {
23889
- "language": "ts",
23890
- "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"
23891
- }
23892
- ]
23893
- },
23894
23894
  {
23895
23895
  "id": "servers.mcp",
23896
23896
  "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).",