@soederpop/luca 0.1.0 → 0.1.1

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-28T05:59:16.407Z
4
+ // Generated at: 2026-03-28T06:19:48.333Z
5
5
 
6
6
  setBuildTimeData('features.googleDocs', {
7
7
  "id": "features.googleDocs",
@@ -12106,202 +12106,6 @@ setBuildTimeData('clients.openai', {
12106
12106
  ]
12107
12107
  });
12108
12108
 
12109
- setBuildTimeData('clients.supabase', {
12110
- "id": "clients.supabase",
12111
- "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).",
12112
- "shortcut": "clients.supabase",
12113
- "className": "SupabaseClient",
12114
- "methods": {
12115
- "from": {
12116
- "description": "Start a query on a Postgres table or view.",
12117
- "parameters": {
12118
- "table": {
12119
- "type": "string",
12120
- "description": "The table or view name to query"
12121
- }
12122
- },
12123
- "required": [
12124
- "table"
12125
- ],
12126
- "returns": "void"
12127
- },
12128
- "rpc": {
12129
- "description": "Call a Postgres function (RPC).",
12130
- "parameters": {
12131
- "fn": {
12132
- "type": "string",
12133
- "description": "The function name"
12134
- },
12135
- "params": {
12136
- "type": "Record<string, unknown>",
12137
- "description": "Arguments to pass to the function"
12138
- },
12139
- "options": {
12140
- "type": "{ head?: boolean; get?: boolean; count?: \"exact\" | \"planned\" | \"estimated\" }",
12141
- "description": "Optional settings (head, get, count)"
12142
- }
12143
- },
12144
- "required": [
12145
- "fn"
12146
- ],
12147
- "returns": "void"
12148
- },
12149
- "signInWithPassword": {
12150
- "description": "Sign in with email and password.",
12151
- "parameters": {
12152
- "email": {
12153
- "type": "string",
12154
- "description": "Parameter email"
12155
- },
12156
- "password": {
12157
- "type": "string",
12158
- "description": "Parameter password"
12159
- }
12160
- },
12161
- "required": [
12162
- "email",
12163
- "password"
12164
- ],
12165
- "returns": "void"
12166
- },
12167
- "signUp": {
12168
- "description": "Create a new user account with email and password.",
12169
- "parameters": {
12170
- "email": {
12171
- "type": "string",
12172
- "description": "Parameter email"
12173
- },
12174
- "password": {
12175
- "type": "string",
12176
- "description": "Parameter password"
12177
- }
12178
- },
12179
- "required": [
12180
- "email",
12181
- "password"
12182
- ],
12183
- "returns": "void"
12184
- },
12185
- "signOut": {
12186
- "description": "Sign the current user out.",
12187
- "parameters": {},
12188
- "required": [],
12189
- "returns": "void"
12190
- },
12191
- "getSession": {
12192
- "description": "Get the current session, if any.",
12193
- "parameters": {},
12194
- "required": [],
12195
- "returns": "void"
12196
- },
12197
- "getUser": {
12198
- "description": "Get the current user, if any.",
12199
- "parameters": {},
12200
- "required": [],
12201
- "returns": "void"
12202
- },
12203
- "invoke": {
12204
- "description": "Invoke a Supabase Edge Function by name.",
12205
- "parameters": {
12206
- "name": {
12207
- "type": "string",
12208
- "description": "Parameter name"
12209
- },
12210
- "body": {
12211
- "type": "any",
12212
- "description": "Parameter body"
12213
- }
12214
- },
12215
- "required": [
12216
- "name"
12217
- ],
12218
- "returns": "void"
12219
- },
12220
- "subscribe": {
12221
- "description": "Subscribe to realtime changes on a Postgres table.",
12222
- "parameters": {
12223
- "channelName": {
12224
- "type": "string",
12225
- "description": "A name for this subscription channel"
12226
- },
12227
- "table": {
12228
- "type": "string",
12229
- "description": "The table to listen to"
12230
- },
12231
- "callback": {
12232
- "type": "(payload: any) => void",
12233
- "description": "Called with the payload on each change"
12234
- },
12235
- "event": {
12236
- "type": "\"INSERT\" | \"UPDATE\" | \"DELETE\" | \"*\"",
12237
- "description": "The event type to listen for (default: all changes)"
12238
- }
12239
- },
12240
- "required": [
12241
- "channelName",
12242
- "table",
12243
- "callback"
12244
- ],
12245
- "returns": "RealtimeChannel"
12246
- },
12247
- "unsubscribe": {
12248
- "description": "Unsubscribe and remove a realtime channel by name.",
12249
- "parameters": {
12250
- "channelName": {
12251
- "type": "string",
12252
- "description": "The channel name to remove"
12253
- }
12254
- },
12255
- "required": [
12256
- "channelName"
12257
- ],
12258
- "returns": "void"
12259
- },
12260
- "unsubscribeAll": {
12261
- "description": "Unsubscribe and remove all realtime channels.",
12262
- "parameters": {},
12263
- "required": [],
12264
- "returns": "void"
12265
- },
12266
- "connect": {
12267
- "description": "Connect is a no-op since the Supabase SDK initializes on construction. The client is ready to use immediately after creation.",
12268
- "parameters": {},
12269
- "required": [],
12270
- "returns": "void"
12271
- },
12272
- "disconnect": {
12273
- "description": "Disconnect by signing out and removing all realtime channels.",
12274
- "parameters": {},
12275
- "required": [],
12276
- "returns": "void"
12277
- }
12278
- },
12279
- "getters": {
12280
- "sdk": {
12281
- "description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
12282
- "returns": "SupabaseSDKClient<any, any>"
12283
- },
12284
- "storage": {
12285
- "description": "Returns the Supabase Storage client for managing buckets and files.",
12286
- "returns": "any"
12287
- },
12288
- "functions": {
12289
- "description": "Returns the Supabase Functions client.",
12290
- "returns": "any"
12291
- }
12292
- },
12293
- "events": {},
12294
- "state": {},
12295
- "options": {},
12296
- "envVars": [],
12297
- "examples": [
12298
- {
12299
- "language": "ts",
12300
- "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})"
12301
- }
12302
- ]
12303
- });
12304
-
12305
12109
  setBuildTimeData('clients.elevenlabs', {
12306
12110
  "id": "clients.elevenlabs",
12307
12111
  "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.",
@@ -12563,7 +12367,203 @@ setBuildTimeData('clients.elevenlabs', {
12563
12367
  }
12564
12368
  }
12565
12369
  }
12566
- }
12370
+ }
12371
+ });
12372
+
12373
+ setBuildTimeData('clients.supabase', {
12374
+ "id": "clients.supabase",
12375
+ "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).",
12376
+ "shortcut": "clients.supabase",
12377
+ "className": "SupabaseClient",
12378
+ "methods": {
12379
+ "from": {
12380
+ "description": "Start a query on a Postgres table or view.",
12381
+ "parameters": {
12382
+ "table": {
12383
+ "type": "string",
12384
+ "description": "The table or view name to query"
12385
+ }
12386
+ },
12387
+ "required": [
12388
+ "table"
12389
+ ],
12390
+ "returns": "void"
12391
+ },
12392
+ "rpc": {
12393
+ "description": "Call a Postgres function (RPC).",
12394
+ "parameters": {
12395
+ "fn": {
12396
+ "type": "string",
12397
+ "description": "The function name"
12398
+ },
12399
+ "params": {
12400
+ "type": "Record<string, unknown>",
12401
+ "description": "Arguments to pass to the function"
12402
+ },
12403
+ "options": {
12404
+ "type": "{ head?: boolean; get?: boolean; count?: \"exact\" | \"planned\" | \"estimated\" }",
12405
+ "description": "Optional settings (head, get, count)"
12406
+ }
12407
+ },
12408
+ "required": [
12409
+ "fn"
12410
+ ],
12411
+ "returns": "void"
12412
+ },
12413
+ "signInWithPassword": {
12414
+ "description": "Sign in with email and password.",
12415
+ "parameters": {
12416
+ "email": {
12417
+ "type": "string",
12418
+ "description": "Parameter email"
12419
+ },
12420
+ "password": {
12421
+ "type": "string",
12422
+ "description": "Parameter password"
12423
+ }
12424
+ },
12425
+ "required": [
12426
+ "email",
12427
+ "password"
12428
+ ],
12429
+ "returns": "void"
12430
+ },
12431
+ "signUp": {
12432
+ "description": "Create a new user account with email and password.",
12433
+ "parameters": {
12434
+ "email": {
12435
+ "type": "string",
12436
+ "description": "Parameter email"
12437
+ },
12438
+ "password": {
12439
+ "type": "string",
12440
+ "description": "Parameter password"
12441
+ }
12442
+ },
12443
+ "required": [
12444
+ "email",
12445
+ "password"
12446
+ ],
12447
+ "returns": "void"
12448
+ },
12449
+ "signOut": {
12450
+ "description": "Sign the current user out.",
12451
+ "parameters": {},
12452
+ "required": [],
12453
+ "returns": "void"
12454
+ },
12455
+ "getSession": {
12456
+ "description": "Get the current session, if any.",
12457
+ "parameters": {},
12458
+ "required": [],
12459
+ "returns": "void"
12460
+ },
12461
+ "getUser": {
12462
+ "description": "Get the current user, if any.",
12463
+ "parameters": {},
12464
+ "required": [],
12465
+ "returns": "void"
12466
+ },
12467
+ "invoke": {
12468
+ "description": "Invoke a Supabase Edge Function by name.",
12469
+ "parameters": {
12470
+ "name": {
12471
+ "type": "string",
12472
+ "description": "Parameter name"
12473
+ },
12474
+ "body": {
12475
+ "type": "any",
12476
+ "description": "Parameter body"
12477
+ }
12478
+ },
12479
+ "required": [
12480
+ "name"
12481
+ ],
12482
+ "returns": "void"
12483
+ },
12484
+ "subscribe": {
12485
+ "description": "Subscribe to realtime changes on a Postgres table.",
12486
+ "parameters": {
12487
+ "channelName": {
12488
+ "type": "string",
12489
+ "description": "A name for this subscription channel"
12490
+ },
12491
+ "table": {
12492
+ "type": "string",
12493
+ "description": "The table to listen to"
12494
+ },
12495
+ "callback": {
12496
+ "type": "(payload: any) => void",
12497
+ "description": "Called with the payload on each change"
12498
+ },
12499
+ "event": {
12500
+ "type": "\"INSERT\" | \"UPDATE\" | \"DELETE\" | \"*\"",
12501
+ "description": "The event type to listen for (default: all changes)"
12502
+ }
12503
+ },
12504
+ "required": [
12505
+ "channelName",
12506
+ "table",
12507
+ "callback"
12508
+ ],
12509
+ "returns": "RealtimeChannel"
12510
+ },
12511
+ "unsubscribe": {
12512
+ "description": "Unsubscribe and remove a realtime channel by name.",
12513
+ "parameters": {
12514
+ "channelName": {
12515
+ "type": "string",
12516
+ "description": "The channel name to remove"
12517
+ }
12518
+ },
12519
+ "required": [
12520
+ "channelName"
12521
+ ],
12522
+ "returns": "void"
12523
+ },
12524
+ "unsubscribeAll": {
12525
+ "description": "Unsubscribe and remove all realtime channels.",
12526
+ "parameters": {},
12527
+ "required": [],
12528
+ "returns": "void"
12529
+ },
12530
+ "connect": {
12531
+ "description": "Connect is a no-op since the Supabase SDK initializes on construction. The client is ready to use immediately after creation.",
12532
+ "parameters": {},
12533
+ "required": [],
12534
+ "returns": "void"
12535
+ },
12536
+ "disconnect": {
12537
+ "description": "Disconnect by signing out and removing all realtime channels.",
12538
+ "parameters": {},
12539
+ "required": [],
12540
+ "returns": "void"
12541
+ }
12542
+ },
12543
+ "getters": {
12544
+ "sdk": {
12545
+ "description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
12546
+ "returns": "SupabaseSDKClient<any, any>"
12547
+ },
12548
+ "storage": {
12549
+ "description": "Returns the Supabase Storage client for managing buckets and files.",
12550
+ "returns": "any"
12551
+ },
12552
+ "functions": {
12553
+ "description": "Returns the Supabase Functions client.",
12554
+ "returns": "any"
12555
+ }
12556
+ },
12557
+ "events": {},
12558
+ "state": {},
12559
+ "options": {},
12560
+ "envVars": [],
12561
+ "examples": [
12562
+ {
12563
+ "language": "ts",
12564
+ "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})"
12565
+ }
12566
+ ]
12567
12567
  });
12568
12568
 
12569
12569
  setBuildTimeData('clients.comfyui', {
@@ -30661,264 +30661,69 @@ export const introspectionData = [
30661
30661
  "options": {
30662
30662
  "type": "Partial<OpenAI.Chat.Completions.ChatCompletionCreateParams>",
30663
30663
  "description": "Additional completion parameters"
30664
- }
30665
- },
30666
- "required": [
30667
- "messages"
30668
- ],
30669
- "returns": "Promise<string>",
30670
- "examples": [
30671
- {
30672
- "language": "ts",
30673
- "code": "const reply = await openai.chat([\n { role: 'system', content: 'You are a pirate.' },\n { role: 'user', content: 'Hello!' }\n])"
30674
- }
30675
- ]
30676
- }
30677
- },
30678
- "getters": {
30679
- "defaultModel": {
30680
- "description": "The default model used for completions, from options or 'gpt-4o'.",
30681
- "returns": "string"
30682
- },
30683
- "raw": {
30684
- "description": "The underlying OpenAI SDK instance for advanced use cases.",
30685
- "returns": "OpenAI"
30686
- }
30687
- },
30688
- "events": {
30689
- "connected": {
30690
- "name": "connected",
30691
- "description": "Event emitted by OpenAIClient",
30692
- "arguments": {}
30693
- },
30694
- "failure": {
30695
- "name": "failure",
30696
- "description": "Event emitted by OpenAIClient",
30697
- "arguments": {}
30698
- },
30699
- "completion": {
30700
- "name": "completion",
30701
- "description": "Event emitted by OpenAIClient",
30702
- "arguments": {}
30703
- },
30704
- "embedding": {
30705
- "name": "embedding",
30706
- "description": "Event emitted by OpenAIClient",
30707
- "arguments": {}
30708
- },
30709
- "image": {
30710
- "name": "image",
30711
- "description": "Event emitted by OpenAIClient",
30712
- "arguments": {}
30713
- },
30714
- "models": {
30715
- "name": "models",
30716
- "description": "Event emitted by OpenAIClient",
30717
- "arguments": {}
30718
- }
30719
- },
30720
- "state": {},
30721
- "options": {},
30722
- "envVars": [],
30723
- "examples": [
30724
- {
30725
- "language": "ts",
30726
- "code": "const openai = container.client('openai', { defaultModel: 'gpt-4o' })\nconst answer = await openai.ask('What is the meaning of life?')\nconsole.log(answer)"
30727
- }
30728
- ]
30729
- },
30730
- {
30731
- "id": "clients.supabase",
30732
- "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).",
30733
- "shortcut": "clients.supabase",
30734
- "className": "SupabaseClient",
30735
- "methods": {
30736
- "from": {
30737
- "description": "Start a query on a Postgres table or view.",
30738
- "parameters": {
30739
- "table": {
30740
- "type": "string",
30741
- "description": "The table or view name to query"
30742
- }
30743
- },
30744
- "required": [
30745
- "table"
30746
- ],
30747
- "returns": "void"
30748
- },
30749
- "rpc": {
30750
- "description": "Call a Postgres function (RPC).",
30751
- "parameters": {
30752
- "fn": {
30753
- "type": "string",
30754
- "description": "The function name"
30755
- },
30756
- "params": {
30757
- "type": "Record<string, unknown>",
30758
- "description": "Arguments to pass to the function"
30759
- },
30760
- "options": {
30761
- "type": "{ head?: boolean; get?: boolean; count?: \"exact\" | \"planned\" | \"estimated\" }",
30762
- "description": "Optional settings (head, get, count)"
30763
- }
30764
- },
30765
- "required": [
30766
- "fn"
30767
- ],
30768
- "returns": "void"
30769
- },
30770
- "signInWithPassword": {
30771
- "description": "Sign in with email and password.",
30772
- "parameters": {
30773
- "email": {
30774
- "type": "string",
30775
- "description": "Parameter email"
30776
- },
30777
- "password": {
30778
- "type": "string",
30779
- "description": "Parameter password"
30780
- }
30781
- },
30782
- "required": [
30783
- "email",
30784
- "password"
30785
- ],
30786
- "returns": "void"
30787
- },
30788
- "signUp": {
30789
- "description": "Create a new user account with email and password.",
30790
- "parameters": {
30791
- "email": {
30792
- "type": "string",
30793
- "description": "Parameter email"
30794
- },
30795
- "password": {
30796
- "type": "string",
30797
- "description": "Parameter password"
30798
- }
30799
- },
30800
- "required": [
30801
- "email",
30802
- "password"
30803
- ],
30804
- "returns": "void"
30805
- },
30806
- "signOut": {
30807
- "description": "Sign the current user out.",
30808
- "parameters": {},
30809
- "required": [],
30810
- "returns": "void"
30811
- },
30812
- "getSession": {
30813
- "description": "Get the current session, if any.",
30814
- "parameters": {},
30815
- "required": [],
30816
- "returns": "void"
30817
- },
30818
- "getUser": {
30819
- "description": "Get the current user, if any.",
30820
- "parameters": {},
30821
- "required": [],
30822
- "returns": "void"
30823
- },
30824
- "invoke": {
30825
- "description": "Invoke a Supabase Edge Function by name.",
30826
- "parameters": {
30827
- "name": {
30828
- "type": "string",
30829
- "description": "Parameter name"
30830
- },
30831
- "body": {
30832
- "type": "any",
30833
- "description": "Parameter body"
30834
- }
30835
- },
30836
- "required": [
30837
- "name"
30838
- ],
30839
- "returns": "void"
30840
- },
30841
- "subscribe": {
30842
- "description": "Subscribe to realtime changes on a Postgres table.",
30843
- "parameters": {
30844
- "channelName": {
30845
- "type": "string",
30846
- "description": "A name for this subscription channel"
30847
- },
30848
- "table": {
30849
- "type": "string",
30850
- "description": "The table to listen to"
30851
- },
30852
- "callback": {
30853
- "type": "(payload: any) => void",
30854
- "description": "Called with the payload on each change"
30855
- },
30856
- "event": {
30857
- "type": "\"INSERT\" | \"UPDATE\" | \"DELETE\" | \"*\"",
30858
- "description": "The event type to listen for (default: all changes)"
30859
- }
30860
- },
30861
- "required": [
30862
- "channelName",
30863
- "table",
30864
- "callback"
30865
- ],
30866
- "returns": "RealtimeChannel"
30867
- },
30868
- "unsubscribe": {
30869
- "description": "Unsubscribe and remove a realtime channel by name.",
30870
- "parameters": {
30871
- "channelName": {
30872
- "type": "string",
30873
- "description": "The channel name to remove"
30874
- }
30875
- },
30876
- "required": [
30877
- "channelName"
30878
- ],
30879
- "returns": "void"
30880
- },
30881
- "unsubscribeAll": {
30882
- "description": "Unsubscribe and remove all realtime channels.",
30883
- "parameters": {},
30884
- "required": [],
30885
- "returns": "void"
30886
- },
30887
- "connect": {
30888
- "description": "Connect is a no-op since the Supabase SDK initializes on construction. The client is ready to use immediately after creation.",
30889
- "parameters": {},
30890
- "required": [],
30891
- "returns": "void"
30892
- },
30893
- "disconnect": {
30894
- "description": "Disconnect by signing out and removing all realtime channels.",
30895
- "parameters": {},
30896
- "required": [],
30897
- "returns": "void"
30664
+ }
30665
+ },
30666
+ "required": [
30667
+ "messages"
30668
+ ],
30669
+ "returns": "Promise<string>",
30670
+ "examples": [
30671
+ {
30672
+ "language": "ts",
30673
+ "code": "const reply = await openai.chat([\n { role: 'system', content: 'You are a pirate.' },\n { role: 'user', content: 'Hello!' }\n])"
30674
+ }
30675
+ ]
30898
30676
  }
30899
30677
  },
30900
30678
  "getters": {
30901
- "sdk": {
30902
- "description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
30903
- "returns": "SupabaseSDKClient<any, any>"
30679
+ "defaultModel": {
30680
+ "description": "The default model used for completions, from options or 'gpt-4o'.",
30681
+ "returns": "string"
30904
30682
  },
30905
- "storage": {
30906
- "description": "Returns the Supabase Storage client for managing buckets and files.",
30907
- "returns": "any"
30683
+ "raw": {
30684
+ "description": "The underlying OpenAI SDK instance for advanced use cases.",
30685
+ "returns": "OpenAI"
30686
+ }
30687
+ },
30688
+ "events": {
30689
+ "connected": {
30690
+ "name": "connected",
30691
+ "description": "Event emitted by OpenAIClient",
30692
+ "arguments": {}
30908
30693
  },
30909
- "functions": {
30910
- "description": "Returns the Supabase Functions client.",
30911
- "returns": "any"
30694
+ "failure": {
30695
+ "name": "failure",
30696
+ "description": "Event emitted by OpenAIClient",
30697
+ "arguments": {}
30698
+ },
30699
+ "completion": {
30700
+ "name": "completion",
30701
+ "description": "Event emitted by OpenAIClient",
30702
+ "arguments": {}
30703
+ },
30704
+ "embedding": {
30705
+ "name": "embedding",
30706
+ "description": "Event emitted by OpenAIClient",
30707
+ "arguments": {}
30708
+ },
30709
+ "image": {
30710
+ "name": "image",
30711
+ "description": "Event emitted by OpenAIClient",
30712
+ "arguments": {}
30713
+ },
30714
+ "models": {
30715
+ "name": "models",
30716
+ "description": "Event emitted by OpenAIClient",
30717
+ "arguments": {}
30912
30718
  }
30913
30719
  },
30914
- "events": {},
30915
30720
  "state": {},
30916
30721
  "options": {},
30917
30722
  "envVars": [],
30918
30723
  "examples": [
30919
30724
  {
30920
30725
  "language": "ts",
30921
- "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})"
30726
+ "code": "const openai = container.client('openai', { defaultModel: 'gpt-4o' })\nconst answer = await openai.ask('What is the meaning of life?')\nconsole.log(answer)"
30922
30727
  }
30923
30728
  ]
30924
30729
  },
@@ -31185,6 +30990,201 @@ export const introspectionData = [
31185
30990
  }
31186
30991
  }
31187
30992
  },
30993
+ {
30994
+ "id": "clients.supabase",
30995
+ "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).",
30996
+ "shortcut": "clients.supabase",
30997
+ "className": "SupabaseClient",
30998
+ "methods": {
30999
+ "from": {
31000
+ "description": "Start a query on a Postgres table or view.",
31001
+ "parameters": {
31002
+ "table": {
31003
+ "type": "string",
31004
+ "description": "The table or view name to query"
31005
+ }
31006
+ },
31007
+ "required": [
31008
+ "table"
31009
+ ],
31010
+ "returns": "void"
31011
+ },
31012
+ "rpc": {
31013
+ "description": "Call a Postgres function (RPC).",
31014
+ "parameters": {
31015
+ "fn": {
31016
+ "type": "string",
31017
+ "description": "The function name"
31018
+ },
31019
+ "params": {
31020
+ "type": "Record<string, unknown>",
31021
+ "description": "Arguments to pass to the function"
31022
+ },
31023
+ "options": {
31024
+ "type": "{ head?: boolean; get?: boolean; count?: \"exact\" | \"planned\" | \"estimated\" }",
31025
+ "description": "Optional settings (head, get, count)"
31026
+ }
31027
+ },
31028
+ "required": [
31029
+ "fn"
31030
+ ],
31031
+ "returns": "void"
31032
+ },
31033
+ "signInWithPassword": {
31034
+ "description": "Sign in with email and password.",
31035
+ "parameters": {
31036
+ "email": {
31037
+ "type": "string",
31038
+ "description": "Parameter email"
31039
+ },
31040
+ "password": {
31041
+ "type": "string",
31042
+ "description": "Parameter password"
31043
+ }
31044
+ },
31045
+ "required": [
31046
+ "email",
31047
+ "password"
31048
+ ],
31049
+ "returns": "void"
31050
+ },
31051
+ "signUp": {
31052
+ "description": "Create a new user account with email and password.",
31053
+ "parameters": {
31054
+ "email": {
31055
+ "type": "string",
31056
+ "description": "Parameter email"
31057
+ },
31058
+ "password": {
31059
+ "type": "string",
31060
+ "description": "Parameter password"
31061
+ }
31062
+ },
31063
+ "required": [
31064
+ "email",
31065
+ "password"
31066
+ ],
31067
+ "returns": "void"
31068
+ },
31069
+ "signOut": {
31070
+ "description": "Sign the current user out.",
31071
+ "parameters": {},
31072
+ "required": [],
31073
+ "returns": "void"
31074
+ },
31075
+ "getSession": {
31076
+ "description": "Get the current session, if any.",
31077
+ "parameters": {},
31078
+ "required": [],
31079
+ "returns": "void"
31080
+ },
31081
+ "getUser": {
31082
+ "description": "Get the current user, if any.",
31083
+ "parameters": {},
31084
+ "required": [],
31085
+ "returns": "void"
31086
+ },
31087
+ "invoke": {
31088
+ "description": "Invoke a Supabase Edge Function by name.",
31089
+ "parameters": {
31090
+ "name": {
31091
+ "type": "string",
31092
+ "description": "Parameter name"
31093
+ },
31094
+ "body": {
31095
+ "type": "any",
31096
+ "description": "Parameter body"
31097
+ }
31098
+ },
31099
+ "required": [
31100
+ "name"
31101
+ ],
31102
+ "returns": "void"
31103
+ },
31104
+ "subscribe": {
31105
+ "description": "Subscribe to realtime changes on a Postgres table.",
31106
+ "parameters": {
31107
+ "channelName": {
31108
+ "type": "string",
31109
+ "description": "A name for this subscription channel"
31110
+ },
31111
+ "table": {
31112
+ "type": "string",
31113
+ "description": "The table to listen to"
31114
+ },
31115
+ "callback": {
31116
+ "type": "(payload: any) => void",
31117
+ "description": "Called with the payload on each change"
31118
+ },
31119
+ "event": {
31120
+ "type": "\"INSERT\" | \"UPDATE\" | \"DELETE\" | \"*\"",
31121
+ "description": "The event type to listen for (default: all changes)"
31122
+ }
31123
+ },
31124
+ "required": [
31125
+ "channelName",
31126
+ "table",
31127
+ "callback"
31128
+ ],
31129
+ "returns": "RealtimeChannel"
31130
+ },
31131
+ "unsubscribe": {
31132
+ "description": "Unsubscribe and remove a realtime channel by name.",
31133
+ "parameters": {
31134
+ "channelName": {
31135
+ "type": "string",
31136
+ "description": "The channel name to remove"
31137
+ }
31138
+ },
31139
+ "required": [
31140
+ "channelName"
31141
+ ],
31142
+ "returns": "void"
31143
+ },
31144
+ "unsubscribeAll": {
31145
+ "description": "Unsubscribe and remove all realtime channels.",
31146
+ "parameters": {},
31147
+ "required": [],
31148
+ "returns": "void"
31149
+ },
31150
+ "connect": {
31151
+ "description": "Connect is a no-op since the Supabase SDK initializes on construction. The client is ready to use immediately after creation.",
31152
+ "parameters": {},
31153
+ "required": [],
31154
+ "returns": "void"
31155
+ },
31156
+ "disconnect": {
31157
+ "description": "Disconnect by signing out and removing all realtime channels.",
31158
+ "parameters": {},
31159
+ "required": [],
31160
+ "returns": "void"
31161
+ }
31162
+ },
31163
+ "getters": {
31164
+ "sdk": {
31165
+ "description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
31166
+ "returns": "SupabaseSDKClient<any, any>"
31167
+ },
31168
+ "storage": {
31169
+ "description": "Returns the Supabase Storage client for managing buckets and files.",
31170
+ "returns": "any"
31171
+ },
31172
+ "functions": {
31173
+ "description": "Returns the Supabase Functions client.",
31174
+ "returns": "any"
31175
+ }
31176
+ },
31177
+ "events": {},
31178
+ "state": {},
31179
+ "options": {},
31180
+ "envVars": [],
31181
+ "examples": [
31182
+ {
31183
+ "language": "ts",
31184
+ "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})"
31185
+ }
31186
+ ]
31187
+ },
31188
31188
  {
31189
31189
  "id": "clients.comfyui",
31190
31190
  "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.",