@soederpop/luca 0.0.25 → 0.0.26

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-22T06:53:17.303Z
4
+ // Generated at: 2026-03-22T20:57:23.197Z
5
5
 
6
6
  setBuildTimeData('features.googleDocs', {
7
7
  "id": "features.googleDocs",
@@ -5298,6 +5298,23 @@ setBuildTimeData('features.fs', {
5298
5298
  }
5299
5299
  ]
5300
5300
  },
5301
+ "readFileSync": {
5302
+ "description": "Synchronously reads a file and returns its contents as a string. added this method because AI Assistants are understandly confused by this deviation from 2000's era node style",
5303
+ "parameters": {
5304
+ "path": {
5305
+ "type": "string",
5306
+ "description": "Parameter path"
5307
+ },
5308
+ "encoding": {
5309
+ "type": "BufferEncoding | null",
5310
+ "description": "Parameter encoding"
5311
+ }
5312
+ },
5313
+ "required": [
5314
+ "path"
5315
+ ],
5316
+ "returns": "string | Buffer"
5317
+ },
5301
5318
  "readFileAsync": {
5302
5319
  "description": "Asynchronously reads a file and returns its contents as a string.",
5303
5320
  "parameters": {
@@ -5340,6 +5357,19 @@ setBuildTimeData('features.fs', {
5340
5357
  }
5341
5358
  ]
5342
5359
  },
5360
+ "readJsonSync": {
5361
+ "description": "Read and parse a JSON file synchronously",
5362
+ "parameters": {
5363
+ "path": {
5364
+ "type": "string",
5365
+ "description": "Parameter path"
5366
+ }
5367
+ },
5368
+ "required": [
5369
+ "path"
5370
+ ],
5371
+ "returns": "void"
5372
+ },
5343
5373
  "readJsonAsync": {
5344
5374
  "description": "Asynchronously reads and parses a JSON file.",
5345
5375
  "parameters": {
@@ -9495,6 +9525,14 @@ setBuildTimeData('features.contentDb', {
9495
9525
  "description": "Returns the available document ids in the collection",
9496
9526
  "returns": "string[]"
9497
9527
  },
9528
+ "modelDefinitionTable": {
9529
+ "description": "",
9530
+ "returns": "any"
9531
+ },
9532
+ "fileTree": {
9533
+ "description": "",
9534
+ "returns": "any"
9535
+ },
9498
9536
  "searchIndexStatus": {
9499
9537
  "description": "Get the current search index status.",
9500
9538
  "returns": "any"
@@ -10109,208 +10147,6 @@ setBuildTimeData('clients.openai', {
10109
10147
  ]
10110
10148
  });
10111
10149
 
10112
- setBuildTimeData('clients.elevenlabs', {
10113
- "id": "clients.elevenlabs",
10114
- "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.",
10115
- "shortcut": "clients.elevenlabs",
10116
- "className": "ElevenLabsClient",
10117
- "methods": {
10118
- "beforeRequest": {
10119
- "description": "Inject the xi-api-key header before each request.",
10120
- "parameters": {},
10121
- "required": [],
10122
- "returns": "void"
10123
- },
10124
- "connect": {
10125
- "description": "Validate the API key by listing available models.",
10126
- "parameters": {},
10127
- "required": [],
10128
- "returns": "Promise<this>",
10129
- "examples": [
10130
- {
10131
- "language": "ts",
10132
- "code": "await el.connect()"
10133
- }
10134
- ]
10135
- },
10136
- "listVoices": {
10137
- "description": "List available voices with optional search and filtering.",
10138
- "parameters": {
10139
- "options": {
10140
- "type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
10141
- "description": "Query parameters for filtering voices"
10142
- }
10143
- },
10144
- "required": [],
10145
- "returns": "Promise<any>",
10146
- "examples": [
10147
- {
10148
- "language": "ts",
10149
- "code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
10150
- }
10151
- ]
10152
- },
10153
- "getVoice": {
10154
- "description": "Get details for a single voice.",
10155
- "parameters": {
10156
- "voiceId": {
10157
- "type": "string",
10158
- "description": "The voice ID to look up"
10159
- }
10160
- },
10161
- "required": [
10162
- "voiceId"
10163
- ],
10164
- "returns": "Promise<any>",
10165
- "examples": [
10166
- {
10167
- "language": "ts",
10168
- "code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
10169
- }
10170
- ]
10171
- },
10172
- "listModels": {
10173
- "description": "List available TTS models.",
10174
- "parameters": {},
10175
- "required": [],
10176
- "returns": "Promise<any[]>",
10177
- "examples": [
10178
- {
10179
- "language": "ts",
10180
- "code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
10181
- }
10182
- ]
10183
- },
10184
- "synthesize": {
10185
- "description": "Synthesize speech from text, returning audio as a Buffer.",
10186
- "parameters": {
10187
- "text": {
10188
- "type": "string",
10189
- "description": "The text to convert to speech"
10190
- },
10191
- "options": {
10192
- "type": "SynthesizeOptions",
10193
- "description": "Voice, model, format, and voice settings overrides",
10194
- "properties": {
10195
- "voiceId": {
10196
- "type": "string",
10197
- "description": ""
10198
- },
10199
- "modelId": {
10200
- "type": "string",
10201
- "description": ""
10202
- },
10203
- "outputFormat": {
10204
- "type": "string",
10205
- "description": ""
10206
- },
10207
- "voiceSettings": {
10208
- "type": "ElevenLabsVoiceSettings",
10209
- "description": ""
10210
- },
10211
- "disableCache": {
10212
- "type": "boolean",
10213
- "description": ""
10214
- }
10215
- }
10216
- }
10217
- },
10218
- "required": [
10219
- "text"
10220
- ],
10221
- "returns": "Promise<Buffer>",
10222
- "examples": [
10223
- {
10224
- "language": "ts",
10225
- "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})"
10226
- }
10227
- ]
10228
- },
10229
- "say": {
10230
- "description": "Synthesize speech and write the audio to a file.",
10231
- "parameters": {
10232
- "text": {
10233
- "type": "string",
10234
- "description": "The text to convert to speech"
10235
- },
10236
- "outputPath": {
10237
- "type": "string",
10238
- "description": "File path to write the audio to"
10239
- },
10240
- "options": {
10241
- "type": "SynthesizeOptions",
10242
- "description": "Voice, model, format, and voice settings overrides",
10243
- "properties": {
10244
- "voiceId": {
10245
- "type": "string",
10246
- "description": ""
10247
- },
10248
- "modelId": {
10249
- "type": "string",
10250
- "description": ""
10251
- },
10252
- "outputFormat": {
10253
- "type": "string",
10254
- "description": ""
10255
- },
10256
- "voiceSettings": {
10257
- "type": "ElevenLabsVoiceSettings",
10258
- "description": ""
10259
- },
10260
- "disableCache": {
10261
- "type": "boolean",
10262
- "description": ""
10263
- }
10264
- }
10265
- }
10266
- },
10267
- "required": [
10268
- "text",
10269
- "outputPath"
10270
- ],
10271
- "returns": "Promise<string>",
10272
- "examples": [
10273
- {
10274
- "language": "ts",
10275
- "code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
10276
- }
10277
- ]
10278
- }
10279
- },
10280
- "getters": {
10281
- "apiKey": {
10282
- "description": "The resolved API key from options or environment.",
10283
- "returns": "string"
10284
- }
10285
- },
10286
- "events": {
10287
- "failure": {
10288
- "name": "failure",
10289
- "description": "Event emitted by ElevenLabsClient",
10290
- "arguments": {}
10291
- },
10292
- "voices": {
10293
- "name": "voices",
10294
- "description": "Event emitted by ElevenLabsClient",
10295
- "arguments": {}
10296
- },
10297
- "speech": {
10298
- "name": "speech",
10299
- "description": "Event emitted by ElevenLabsClient",
10300
- "arguments": {}
10301
- }
10302
- },
10303
- "state": {},
10304
- "options": {},
10305
- "envVars": [],
10306
- "examples": [
10307
- {
10308
- "language": "ts",
10309
- "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"
10310
- }
10311
- ]
10312
- });
10313
-
10314
10150
  setBuildTimeData('clients.supabase', {
10315
10151
  "id": "clients.supabase",
10316
10152
  "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).",
@@ -10759,26 +10595,228 @@ setBuildTimeData('clients.comfyui', {
10759
10595
  ]
10760
10596
  });
10761
10597
 
10762
- setBuildTimeData('servers.mcp', {
10763
- "id": "servers.mcp",
10764
- "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).",
10765
- "shortcut": "servers.mcp",
10766
- "className": "MCPServer",
10598
+ setBuildTimeData('clients.elevenlabs', {
10599
+ "id": "clients.elevenlabs",
10600
+ "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.",
10601
+ "shortcut": "clients.elevenlabs",
10602
+ "className": "ElevenLabsClient",
10767
10603
  "methods": {
10768
- "tool": {
10769
- "description": "Register an MCP tool. The tool's Zod schema is converted to JSON Schema for the protocol listing, and used for runtime argument validation. Tool handlers can return a string (auto-wrapped as text content) or a full CallToolResult object for advanced responses (images, errors, etc).",
10770
- "parameters": {
10771
- "name": {
10772
- "type": "string",
10773
- "description": "Unique tool name"
10774
- },
10775
- "options": {
10776
- "type": "ToolRegistrationOptions",
10777
- "description": "Tool schema, description, and handler",
10778
- "properties": {
10779
- "schema": {
10780
- "type": "z.ZodObject<any>",
10781
- "description": ""
10604
+ "beforeRequest": {
10605
+ "description": "Inject the xi-api-key header before each request.",
10606
+ "parameters": {},
10607
+ "required": [],
10608
+ "returns": "void"
10609
+ },
10610
+ "connect": {
10611
+ "description": "Validate the API key by listing available models.",
10612
+ "parameters": {},
10613
+ "required": [],
10614
+ "returns": "Promise<this>",
10615
+ "examples": [
10616
+ {
10617
+ "language": "ts",
10618
+ "code": "await el.connect()"
10619
+ }
10620
+ ]
10621
+ },
10622
+ "listVoices": {
10623
+ "description": "List available voices with optional search and filtering.",
10624
+ "parameters": {
10625
+ "options": {
10626
+ "type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
10627
+ "description": "Query parameters for filtering voices"
10628
+ }
10629
+ },
10630
+ "required": [],
10631
+ "returns": "Promise<any>",
10632
+ "examples": [
10633
+ {
10634
+ "language": "ts",
10635
+ "code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
10636
+ }
10637
+ ]
10638
+ },
10639
+ "getVoice": {
10640
+ "description": "Get details for a single voice.",
10641
+ "parameters": {
10642
+ "voiceId": {
10643
+ "type": "string",
10644
+ "description": "The voice ID to look up"
10645
+ }
10646
+ },
10647
+ "required": [
10648
+ "voiceId"
10649
+ ],
10650
+ "returns": "Promise<any>",
10651
+ "examples": [
10652
+ {
10653
+ "language": "ts",
10654
+ "code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
10655
+ }
10656
+ ]
10657
+ },
10658
+ "listModels": {
10659
+ "description": "List available TTS models.",
10660
+ "parameters": {},
10661
+ "required": [],
10662
+ "returns": "Promise<any[]>",
10663
+ "examples": [
10664
+ {
10665
+ "language": "ts",
10666
+ "code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
10667
+ }
10668
+ ]
10669
+ },
10670
+ "synthesize": {
10671
+ "description": "Synthesize speech from text, returning audio as a Buffer.",
10672
+ "parameters": {
10673
+ "text": {
10674
+ "type": "string",
10675
+ "description": "The text to convert to speech"
10676
+ },
10677
+ "options": {
10678
+ "type": "SynthesizeOptions",
10679
+ "description": "Voice, model, format, and voice settings overrides",
10680
+ "properties": {
10681
+ "voiceId": {
10682
+ "type": "string",
10683
+ "description": ""
10684
+ },
10685
+ "modelId": {
10686
+ "type": "string",
10687
+ "description": ""
10688
+ },
10689
+ "outputFormat": {
10690
+ "type": "string",
10691
+ "description": ""
10692
+ },
10693
+ "voiceSettings": {
10694
+ "type": "ElevenLabsVoiceSettings",
10695
+ "description": ""
10696
+ },
10697
+ "disableCache": {
10698
+ "type": "boolean",
10699
+ "description": ""
10700
+ }
10701
+ }
10702
+ }
10703
+ },
10704
+ "required": [
10705
+ "text"
10706
+ ],
10707
+ "returns": "Promise<Buffer>",
10708
+ "examples": [
10709
+ {
10710
+ "language": "ts",
10711
+ "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})"
10712
+ }
10713
+ ]
10714
+ },
10715
+ "say": {
10716
+ "description": "Synthesize speech and write the audio to a file.",
10717
+ "parameters": {
10718
+ "text": {
10719
+ "type": "string",
10720
+ "description": "The text to convert to speech"
10721
+ },
10722
+ "outputPath": {
10723
+ "type": "string",
10724
+ "description": "File path to write the audio to"
10725
+ },
10726
+ "options": {
10727
+ "type": "SynthesizeOptions",
10728
+ "description": "Voice, model, format, and voice settings overrides",
10729
+ "properties": {
10730
+ "voiceId": {
10731
+ "type": "string",
10732
+ "description": ""
10733
+ },
10734
+ "modelId": {
10735
+ "type": "string",
10736
+ "description": ""
10737
+ },
10738
+ "outputFormat": {
10739
+ "type": "string",
10740
+ "description": ""
10741
+ },
10742
+ "voiceSettings": {
10743
+ "type": "ElevenLabsVoiceSettings",
10744
+ "description": ""
10745
+ },
10746
+ "disableCache": {
10747
+ "type": "boolean",
10748
+ "description": ""
10749
+ }
10750
+ }
10751
+ }
10752
+ },
10753
+ "required": [
10754
+ "text",
10755
+ "outputPath"
10756
+ ],
10757
+ "returns": "Promise<string>",
10758
+ "examples": [
10759
+ {
10760
+ "language": "ts",
10761
+ "code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
10762
+ }
10763
+ ]
10764
+ }
10765
+ },
10766
+ "getters": {
10767
+ "apiKey": {
10768
+ "description": "The resolved API key from options or environment.",
10769
+ "returns": "string"
10770
+ }
10771
+ },
10772
+ "events": {
10773
+ "failure": {
10774
+ "name": "failure",
10775
+ "description": "Event emitted by ElevenLabsClient",
10776
+ "arguments": {}
10777
+ },
10778
+ "voices": {
10779
+ "name": "voices",
10780
+ "description": "Event emitted by ElevenLabsClient",
10781
+ "arguments": {}
10782
+ },
10783
+ "speech": {
10784
+ "name": "speech",
10785
+ "description": "Event emitted by ElevenLabsClient",
10786
+ "arguments": {}
10787
+ }
10788
+ },
10789
+ "state": {},
10790
+ "options": {},
10791
+ "envVars": [],
10792
+ "examples": [
10793
+ {
10794
+ "language": "ts",
10795
+ "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"
10796
+ }
10797
+ ]
10798
+ });
10799
+
10800
+ setBuildTimeData('servers.mcp', {
10801
+ "id": "servers.mcp",
10802
+ "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).",
10803
+ "shortcut": "servers.mcp",
10804
+ "className": "MCPServer",
10805
+ "methods": {
10806
+ "tool": {
10807
+ "description": "Register an MCP tool. The tool's Zod schema is converted to JSON Schema for the protocol listing, and used for runtime argument validation. Tool handlers can return a string (auto-wrapped as text content) or a full CallToolResult object for advanced responses (images, errors, etc).",
10808
+ "parameters": {
10809
+ "name": {
10810
+ "type": "string",
10811
+ "description": "Unique tool name"
10812
+ },
10813
+ "options": {
10814
+ "type": "ToolRegistrationOptions",
10815
+ "description": "Tool schema, description, and handler",
10816
+ "properties": {
10817
+ "schema": {
10818
+ "type": "z.ZodObject<any>",
10819
+ "description": ""
10782
10820
  },
10783
10821
  "description": {
10784
10822
  "type": "string",
@@ -11982,7 +12020,7 @@ setBuildTimeData('features.assistant', {
11982
12020
  "description": "Apply a setup function or a Helper instance to this assistant. When passed a function, it receives the assistant and can configure tools, hooks, event listeners, etc. When passed a Helper instance that exposes tools via toTools(), those tools are automatically added to this assistant.",
11983
12021
  "parameters": {
11984
12022
  "fnOrHelper": {
11985
- "type": "((assistant: this) => void | Promise<void>) | { toTools: () => { schemas: Record<string, z.ZodType>, handlers: Record<string, Function> } }",
12023
+ "type": "((assistant: this) => void | Promise<void>) | { toTools: () => { schemas: Record<string, z.ZodType>, handlers: Record<string, Function> } } | { schemas: Record<string, z.ZodType>, handlers: Record<string, Function> }",
11986
12024
  "description": "Setup function or Helper instance"
11987
12025
  }
11988
12026
  },
@@ -13960,6 +13998,10 @@ setContainerBuildTimeData('Container', {
13960
13998
  "description": "Returns a map of enabled feature shortcut IDs to their instances.",
13961
13999
  "returns": "Partial<AvailableInstanceTypes<Features>>"
13962
14000
  },
14001
+ "describer": {
14002
+ "description": "Lazy-initialized ContainerDescriber for introspecting registries, helpers, and members.",
14003
+ "returns": "ContainerDescriber"
14004
+ },
13963
14005
  "context": {
13964
14006
  "description": "The Container's context is an object that contains the enabled features, the container itself, and any additional context that has been added to the container. All helper instances that are created by the container will have access to the shared context.",
13965
14007
  "returns": "ContainerContext<Features> & Partial<AvailableInstanceTypes<AvailableFeatures>>"
@@ -19364,6 +19406,23 @@ export const introspectionData = [
19364
19406
  }
19365
19407
  ]
19366
19408
  },
19409
+ "readFileSync": {
19410
+ "description": "Synchronously reads a file and returns its contents as a string. added this method because AI Assistants are understandly confused by this deviation from 2000's era node style",
19411
+ "parameters": {
19412
+ "path": {
19413
+ "type": "string",
19414
+ "description": "Parameter path"
19415
+ },
19416
+ "encoding": {
19417
+ "type": "BufferEncoding | null",
19418
+ "description": "Parameter encoding"
19419
+ }
19420
+ },
19421
+ "required": [
19422
+ "path"
19423
+ ],
19424
+ "returns": "string | Buffer"
19425
+ },
19367
19426
  "readFileAsync": {
19368
19427
  "description": "Asynchronously reads a file and returns its contents as a string.",
19369
19428
  "parameters": {
@@ -19406,6 +19465,19 @@ export const introspectionData = [
19406
19465
  }
19407
19466
  ]
19408
19467
  },
19468
+ "readJsonSync": {
19469
+ "description": "Read and parse a JSON file synchronously",
19470
+ "parameters": {
19471
+ "path": {
19472
+ "type": "string",
19473
+ "description": "Parameter path"
19474
+ }
19475
+ },
19476
+ "required": [
19477
+ "path"
19478
+ ],
19479
+ "returns": "void"
19480
+ },
19409
19481
  "readJsonAsync": {
19410
19482
  "description": "Asynchronously reads and parses a JSON file.",
19411
19483
  "parameters": {
@@ -23546,6 +23618,14 @@ export const introspectionData = [
23546
23618
  "description": "Returns the available document ids in the collection",
23547
23619
  "returns": "string[]"
23548
23620
  },
23621
+ "modelDefinitionTable": {
23622
+ "description": "",
23623
+ "returns": "any"
23624
+ },
23625
+ "fileTree": {
23626
+ "description": "",
23627
+ "returns": "any"
23628
+ },
23549
23629
  "searchIndexStatus": {
23550
23630
  "description": "Get the current search index status.",
23551
23631
  "returns": "any"
@@ -24156,211 +24236,10 @@ export const introspectionData = [
24156
24236
  ]
24157
24237
  },
24158
24238
  {
24159
- "id": "clients.elevenlabs",
24160
- "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.",
24161
- "shortcut": "clients.elevenlabs",
24162
- "className": "ElevenLabsClient",
24163
- "methods": {
24164
- "beforeRequest": {
24165
- "description": "Inject the xi-api-key header before each request.",
24166
- "parameters": {},
24167
- "required": [],
24168
- "returns": "void"
24169
- },
24170
- "connect": {
24171
- "description": "Validate the API key by listing available models.",
24172
- "parameters": {},
24173
- "required": [],
24174
- "returns": "Promise<this>",
24175
- "examples": [
24176
- {
24177
- "language": "ts",
24178
- "code": "await el.connect()"
24179
- }
24180
- ]
24181
- },
24182
- "listVoices": {
24183
- "description": "List available voices with optional search and filtering.",
24184
- "parameters": {
24185
- "options": {
24186
- "type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
24187
- "description": "Query parameters for filtering voices"
24188
- }
24189
- },
24190
- "required": [],
24191
- "returns": "Promise<any>",
24192
- "examples": [
24193
- {
24194
- "language": "ts",
24195
- "code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
24196
- }
24197
- ]
24198
- },
24199
- "getVoice": {
24200
- "description": "Get details for a single voice.",
24201
- "parameters": {
24202
- "voiceId": {
24203
- "type": "string",
24204
- "description": "The voice ID to look up"
24205
- }
24206
- },
24207
- "required": [
24208
- "voiceId"
24209
- ],
24210
- "returns": "Promise<any>",
24211
- "examples": [
24212
- {
24213
- "language": "ts",
24214
- "code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
24215
- }
24216
- ]
24217
- },
24218
- "listModels": {
24219
- "description": "List available TTS models.",
24220
- "parameters": {},
24221
- "required": [],
24222
- "returns": "Promise<any[]>",
24223
- "examples": [
24224
- {
24225
- "language": "ts",
24226
- "code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
24227
- }
24228
- ]
24229
- },
24230
- "synthesize": {
24231
- "description": "Synthesize speech from text, returning audio as a Buffer.",
24232
- "parameters": {
24233
- "text": {
24234
- "type": "string",
24235
- "description": "The text to convert to speech"
24236
- },
24237
- "options": {
24238
- "type": "SynthesizeOptions",
24239
- "description": "Voice, model, format, and voice settings overrides",
24240
- "properties": {
24241
- "voiceId": {
24242
- "type": "string",
24243
- "description": ""
24244
- },
24245
- "modelId": {
24246
- "type": "string",
24247
- "description": ""
24248
- },
24249
- "outputFormat": {
24250
- "type": "string",
24251
- "description": ""
24252
- },
24253
- "voiceSettings": {
24254
- "type": "ElevenLabsVoiceSettings",
24255
- "description": ""
24256
- },
24257
- "disableCache": {
24258
- "type": "boolean",
24259
- "description": ""
24260
- }
24261
- }
24262
- }
24263
- },
24264
- "required": [
24265
- "text"
24266
- ],
24267
- "returns": "Promise<Buffer>",
24268
- "examples": [
24269
- {
24270
- "language": "ts",
24271
- "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})"
24272
- }
24273
- ]
24274
- },
24275
- "say": {
24276
- "description": "Synthesize speech and write the audio to a file.",
24277
- "parameters": {
24278
- "text": {
24279
- "type": "string",
24280
- "description": "The text to convert to speech"
24281
- },
24282
- "outputPath": {
24283
- "type": "string",
24284
- "description": "File path to write the audio to"
24285
- },
24286
- "options": {
24287
- "type": "SynthesizeOptions",
24288
- "description": "Voice, model, format, and voice settings overrides",
24289
- "properties": {
24290
- "voiceId": {
24291
- "type": "string",
24292
- "description": ""
24293
- },
24294
- "modelId": {
24295
- "type": "string",
24296
- "description": ""
24297
- },
24298
- "outputFormat": {
24299
- "type": "string",
24300
- "description": ""
24301
- },
24302
- "voiceSettings": {
24303
- "type": "ElevenLabsVoiceSettings",
24304
- "description": ""
24305
- },
24306
- "disableCache": {
24307
- "type": "boolean",
24308
- "description": ""
24309
- }
24310
- }
24311
- }
24312
- },
24313
- "required": [
24314
- "text",
24315
- "outputPath"
24316
- ],
24317
- "returns": "Promise<string>",
24318
- "examples": [
24319
- {
24320
- "language": "ts",
24321
- "code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
24322
- }
24323
- ]
24324
- }
24325
- },
24326
- "getters": {
24327
- "apiKey": {
24328
- "description": "The resolved API key from options or environment.",
24329
- "returns": "string"
24330
- }
24331
- },
24332
- "events": {
24333
- "failure": {
24334
- "name": "failure",
24335
- "description": "Event emitted by ElevenLabsClient",
24336
- "arguments": {}
24337
- },
24338
- "voices": {
24339
- "name": "voices",
24340
- "description": "Event emitted by ElevenLabsClient",
24341
- "arguments": {}
24342
- },
24343
- "speech": {
24344
- "name": "speech",
24345
- "description": "Event emitted by ElevenLabsClient",
24346
- "arguments": {}
24347
- }
24348
- },
24349
- "state": {},
24350
- "options": {},
24351
- "envVars": [],
24352
- "examples": [
24353
- {
24354
- "language": "ts",
24355
- "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"
24356
- }
24357
- ]
24358
- },
24359
- {
24360
- "id": "clients.supabase",
24361
- "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).",
24362
- "shortcut": "clients.supabase",
24363
- "className": "SupabaseClient",
24239
+ "id": "clients.supabase",
24240
+ "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).",
24241
+ "shortcut": "clients.supabase",
24242
+ "className": "SupabaseClient",
24364
24243
  "methods": {
24365
24244
  "from": {
24366
24245
  "description": "Start a query on a Postgres table or view.",
@@ -24802,6 +24681,207 @@ export const introspectionData = [
24802
24681
  }
24803
24682
  ]
24804
24683
  },
24684
+ {
24685
+ "id": "clients.elevenlabs",
24686
+ "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.",
24687
+ "shortcut": "clients.elevenlabs",
24688
+ "className": "ElevenLabsClient",
24689
+ "methods": {
24690
+ "beforeRequest": {
24691
+ "description": "Inject the xi-api-key header before each request.",
24692
+ "parameters": {},
24693
+ "required": [],
24694
+ "returns": "void"
24695
+ },
24696
+ "connect": {
24697
+ "description": "Validate the API key by listing available models.",
24698
+ "parameters": {},
24699
+ "required": [],
24700
+ "returns": "Promise<this>",
24701
+ "examples": [
24702
+ {
24703
+ "language": "ts",
24704
+ "code": "await el.connect()"
24705
+ }
24706
+ ]
24707
+ },
24708
+ "listVoices": {
24709
+ "description": "List available voices with optional search and filtering.",
24710
+ "parameters": {
24711
+ "options": {
24712
+ "type": "{\n search?: string\n category?: string\n voice_type?: string\n page_size?: number\n next_page_token?: string\n }",
24713
+ "description": "Query parameters for filtering voices"
24714
+ }
24715
+ },
24716
+ "required": [],
24717
+ "returns": "Promise<any>",
24718
+ "examples": [
24719
+ {
24720
+ "language": "ts",
24721
+ "code": "const voices = await el.listVoices()\nconst premade = await el.listVoices({ category: 'premade' })"
24722
+ }
24723
+ ]
24724
+ },
24725
+ "getVoice": {
24726
+ "description": "Get details for a single voice.",
24727
+ "parameters": {
24728
+ "voiceId": {
24729
+ "type": "string",
24730
+ "description": "The voice ID to look up"
24731
+ }
24732
+ },
24733
+ "required": [
24734
+ "voiceId"
24735
+ ],
24736
+ "returns": "Promise<any>",
24737
+ "examples": [
24738
+ {
24739
+ "language": "ts",
24740
+ "code": "const voice = await el.getVoice('21m00Tcm4TlvDq8ikWAM')\nconsole.log(voice.name, voice.settings)"
24741
+ }
24742
+ ]
24743
+ },
24744
+ "listModels": {
24745
+ "description": "List available TTS models.",
24746
+ "parameters": {},
24747
+ "required": [],
24748
+ "returns": "Promise<any[]>",
24749
+ "examples": [
24750
+ {
24751
+ "language": "ts",
24752
+ "code": "const models = await el.listModels()\nconsole.log(models.map(m => m.model_id))"
24753
+ }
24754
+ ]
24755
+ },
24756
+ "synthesize": {
24757
+ "description": "Synthesize speech from text, returning audio as a Buffer.",
24758
+ "parameters": {
24759
+ "text": {
24760
+ "type": "string",
24761
+ "description": "The text to convert to speech"
24762
+ },
24763
+ "options": {
24764
+ "type": "SynthesizeOptions",
24765
+ "description": "Voice, model, format, and voice settings overrides",
24766
+ "properties": {
24767
+ "voiceId": {
24768
+ "type": "string",
24769
+ "description": ""
24770
+ },
24771
+ "modelId": {
24772
+ "type": "string",
24773
+ "description": ""
24774
+ },
24775
+ "outputFormat": {
24776
+ "type": "string",
24777
+ "description": ""
24778
+ },
24779
+ "voiceSettings": {
24780
+ "type": "ElevenLabsVoiceSettings",
24781
+ "description": ""
24782
+ },
24783
+ "disableCache": {
24784
+ "type": "boolean",
24785
+ "description": ""
24786
+ }
24787
+ }
24788
+ }
24789
+ },
24790
+ "required": [
24791
+ "text"
24792
+ ],
24793
+ "returns": "Promise<Buffer>",
24794
+ "examples": [
24795
+ {
24796
+ "language": "ts",
24797
+ "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})"
24798
+ }
24799
+ ]
24800
+ },
24801
+ "say": {
24802
+ "description": "Synthesize speech and write the audio to a file.",
24803
+ "parameters": {
24804
+ "text": {
24805
+ "type": "string",
24806
+ "description": "The text to convert to speech"
24807
+ },
24808
+ "outputPath": {
24809
+ "type": "string",
24810
+ "description": "File path to write the audio to"
24811
+ },
24812
+ "options": {
24813
+ "type": "SynthesizeOptions",
24814
+ "description": "Voice, model, format, and voice settings overrides",
24815
+ "properties": {
24816
+ "voiceId": {
24817
+ "type": "string",
24818
+ "description": ""
24819
+ },
24820
+ "modelId": {
24821
+ "type": "string",
24822
+ "description": ""
24823
+ },
24824
+ "outputFormat": {
24825
+ "type": "string",
24826
+ "description": ""
24827
+ },
24828
+ "voiceSettings": {
24829
+ "type": "ElevenLabsVoiceSettings",
24830
+ "description": ""
24831
+ },
24832
+ "disableCache": {
24833
+ "type": "boolean",
24834
+ "description": ""
24835
+ }
24836
+ }
24837
+ }
24838
+ },
24839
+ "required": [
24840
+ "text",
24841
+ "outputPath"
24842
+ ],
24843
+ "returns": "Promise<string>",
24844
+ "examples": [
24845
+ {
24846
+ "language": "ts",
24847
+ "code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
24848
+ }
24849
+ ]
24850
+ }
24851
+ },
24852
+ "getters": {
24853
+ "apiKey": {
24854
+ "description": "The resolved API key from options or environment.",
24855
+ "returns": "string"
24856
+ }
24857
+ },
24858
+ "events": {
24859
+ "failure": {
24860
+ "name": "failure",
24861
+ "description": "Event emitted by ElevenLabsClient",
24862
+ "arguments": {}
24863
+ },
24864
+ "voices": {
24865
+ "name": "voices",
24866
+ "description": "Event emitted by ElevenLabsClient",
24867
+ "arguments": {}
24868
+ },
24869
+ "speech": {
24870
+ "name": "speech",
24871
+ "description": "Event emitted by ElevenLabsClient",
24872
+ "arguments": {}
24873
+ }
24874
+ },
24875
+ "state": {},
24876
+ "options": {},
24877
+ "envVars": [],
24878
+ "examples": [
24879
+ {
24880
+ "language": "ts",
24881
+ "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"
24882
+ }
24883
+ ]
24884
+ },
24805
24885
  {
24806
24886
  "id": "servers.mcp",
24807
24887
  "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).",
@@ -26017,7 +26097,7 @@ export const introspectionData = [
26017
26097
  "description": "Apply a setup function or a Helper instance to this assistant. When passed a function, it receives the assistant and can configure tools, hooks, event listeners, etc. When passed a Helper instance that exposes tools via toTools(), those tools are automatically added to this assistant.",
26018
26098
  "parameters": {
26019
26099
  "fnOrHelper": {
26020
- "type": "((assistant: this) => void | Promise<void>) | { toTools: () => { schemas: Record<string, z.ZodType>, handlers: Record<string, Function> } }",
26100
+ "type": "((assistant: this) => void | Promise<void>) | { toTools: () => { schemas: Record<string, z.ZodType>, handlers: Record<string, Function> } } | { schemas: Record<string, z.ZodType>, handlers: Record<string, Function> }",
26021
26101
  "description": "Setup function or Helper instance"
26022
26102
  }
26023
26103
  },
@@ -27993,6 +28073,10 @@ export const containerIntrospectionData = [
27993
28073
  "description": "Returns a map of enabled feature shortcut IDs to their instances.",
27994
28074
  "returns": "Partial<AvailableInstanceTypes<Features>>"
27995
28075
  },
28076
+ "describer": {
28077
+ "description": "Lazy-initialized ContainerDescriber for introspecting registries, helpers, and members.",
28078
+ "returns": "ContainerDescriber"
28079
+ },
27996
28080
  "context": {
27997
28081
  "description": "The Container's context is an object that contains the enabled features, the container itself, and any additional context that has been added to the container. All helper instances that are created by the container will have access to the shared context.",
27998
28082
  "returns": "ContainerContext<Features> & Partial<AvailableInstanceTypes<AvailableFeatures>>"