@soederpop/luca 0.0.35 → 0.1.0

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-27T03:29:26.633Z
4
+ // Generated at: 2026-03-28T05:59:16.407Z
5
5
 
6
6
  setBuildTimeData('features.googleDocs', {
7
7
  "id": "features.googleDocs",
@@ -953,77 +953,6 @@ setBuildTimeData('features.git', {
953
953
  }
954
954
  });
955
955
 
956
- setBuildTimeData('features.esbuild', {
957
- "id": "features.esbuild",
958
- "description": "A Feature for compiling typescript / esm modules, etc to JavaScript that the container can run at runtime. Uses esbuild for fast, reliable TypeScript/ESM transformation with full format support (esm, cjs, iife).",
959
- "shortcut": "features.esbuild",
960
- "className": "ESBuild",
961
- "methods": {
962
- "transformSync": {
963
- "description": "/** Transform code synchronously",
964
- "parameters": {
965
- "code": {
966
- "type": "string",
967
- "description": "The code to transform"
968
- },
969
- "options": {
970
- "type": "esbuild.TransformOptions",
971
- "description": "The options to pass to esbuild"
972
- }
973
- },
974
- "required": [
975
- "code"
976
- ],
977
- "returns": "esbuild.TransformResult"
978
- },
979
- "transform": {
980
- "description": "Transform code asynchronously",
981
- "parameters": {
982
- "code": {
983
- "type": "string",
984
- "description": "The code to transform"
985
- },
986
- "options": {
987
- "type": "esbuild.TransformOptions",
988
- "description": "The options to pass to esbuild"
989
- }
990
- },
991
- "required": [
992
- "code"
993
- ],
994
- "returns": "Promise<esbuild.TransformResult>"
995
- },
996
- "bundle": {
997
- "description": "Bundle one or more entry points, resolving imports and requires into a single output. Supports Node platform by default so require() and Node builtins are handled. Returns in-memory output files unless write is enabled in options.",
998
- "parameters": {
999
- "entryPoints": {
1000
- "type": "string[]",
1001
- "description": "File paths to bundle from"
1002
- },
1003
- "options": {
1004
- "type": "esbuild.BuildOptions",
1005
- "description": "esbuild BuildOptions overrides"
1006
- }
1007
- },
1008
- "required": [
1009
- "entryPoints"
1010
- ],
1011
- "returns": "Promise<esbuild.BuildResult>"
1012
- }
1013
- },
1014
- "getters": {},
1015
- "events": {},
1016
- "state": {},
1017
- "options": {},
1018
- "envVars": [],
1019
- "examples": [
1020
- {
1021
- "language": "ts",
1022
- "code": "const esbuild = container.feature('esbuild')\nconst result = esbuild.transformSync('const x: number = 1')\nconsole.log(result.code) // 'const x = 1;\\n'"
1023
- }
1024
- ]
1025
- });
1026
-
1027
956
  setBuildTimeData('features.dns', {
1028
957
  "id": "features.dns",
1029
958
  "description": "The Dns feature provides structured DNS lookups by wrapping the `dig` CLI. All query methods parse dig output into typed JSON objects, making it easy to explore and audit a domain's DNS configuration programmatically.",
@@ -4994,6 +4923,127 @@ setBuildTimeData('features.docker', {
4994
4923
  }
4995
4924
  });
4996
4925
 
4926
+ setBuildTimeData('features.transpiler', {
4927
+ "id": "features.transpiler",
4928
+ "description": "Transpile TypeScript, TSX, and JSX to JavaScript at runtime using Bun's built-in transpiler. Compile code strings on the fly without touching the filesystem or spawning external processes.",
4929
+ "shortcut": "features.transpiler",
4930
+ "className": "Transpiler",
4931
+ "methods": {
4932
+ "transformSync": {
4933
+ "description": "Transform code synchronously",
4934
+ "parameters": {
4935
+ "code": {
4936
+ "type": "string",
4937
+ "description": "The code to transform"
4938
+ },
4939
+ "options": {
4940
+ "type": "TransformOptions",
4941
+ "description": "Transform options (loader, format, minify)",
4942
+ "properties": {
4943
+ "loader": {
4944
+ "type": "'ts' | 'tsx' | 'jsx' | 'js'",
4945
+ "description": ""
4946
+ },
4947
+ "format": {
4948
+ "type": "'esm' | 'cjs'",
4949
+ "description": ""
4950
+ },
4951
+ "minify": {
4952
+ "type": "boolean",
4953
+ "description": ""
4954
+ }
4955
+ }
4956
+ }
4957
+ },
4958
+ "required": [
4959
+ "code"
4960
+ ],
4961
+ "returns": "TransformResult"
4962
+ },
4963
+ "transform": {
4964
+ "description": "Transform code asynchronously",
4965
+ "parameters": {
4966
+ "code": {
4967
+ "type": "string",
4968
+ "description": "The code to transform"
4969
+ },
4970
+ "options": {
4971
+ "type": "TransformOptions",
4972
+ "description": "Transform options (loader, format, minify)",
4973
+ "properties": {
4974
+ "loader": {
4975
+ "type": "'ts' | 'tsx' | 'jsx' | 'js'",
4976
+ "description": ""
4977
+ },
4978
+ "format": {
4979
+ "type": "'esm' | 'cjs'",
4980
+ "description": ""
4981
+ },
4982
+ "minify": {
4983
+ "type": "boolean",
4984
+ "description": ""
4985
+ }
4986
+ }
4987
+ }
4988
+ },
4989
+ "required": [
4990
+ "code"
4991
+ ],
4992
+ "returns": "Promise<TransformResult>"
4993
+ }
4994
+ },
4995
+ "getters": {},
4996
+ "events": {},
4997
+ "state": {},
4998
+ "options": {},
4999
+ "envVars": [],
5000
+ "examples": [
5001
+ {
5002
+ "language": "ts",
5003
+ "code": "const transpiler = container.feature('transpiler')\nconst result = transpiler.transformSync('const x: number = 1')\nconsole.log(result.code) // 'const x = 1;\\n'"
5004
+ }
5005
+ ],
5006
+ "types": {
5007
+ "TransformOptions": {
5008
+ "description": "",
5009
+ "properties": {
5010
+ "loader": {
5011
+ "type": "'ts' | 'tsx' | 'jsx' | 'js'",
5012
+ "description": "",
5013
+ "optional": true
5014
+ },
5015
+ "format": {
5016
+ "type": "'esm' | 'cjs'",
5017
+ "description": "",
5018
+ "optional": true
5019
+ },
5020
+ "minify": {
5021
+ "type": "boolean",
5022
+ "description": "",
5023
+ "optional": true
5024
+ }
5025
+ }
5026
+ },
5027
+ "TransformResult": {
5028
+ "description": "",
5029
+ "properties": {
5030
+ "code": {
5031
+ "type": "string",
5032
+ "description": ""
5033
+ },
5034
+ "map": {
5035
+ "type": "string",
5036
+ "description": ""
5037
+ },
5038
+ "warnings": {
5039
+ "type": "any[]",
5040
+ "description": ""
5041
+ }
5042
+ }
5043
+ }
5044
+ }
5045
+ });
5046
+
4997
5047
  setBuildTimeData('features.yaml', {
4998
5048
  "id": "features.yaml",
4999
5049
  "description": "The YAML feature provides utilities for parsing and stringifying YAML data. This feature wraps the js-yaml library to provide convenient methods for converting between YAML strings and JavaScript objects. It's automatically attached to Node containers for easy access.",
@@ -12056,6 +12106,202 @@ setBuildTimeData('clients.openai', {
12056
12106
  ]
12057
12107
  });
12058
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
+
12059
12305
  setBuildTimeData('clients.elevenlabs', {
12060
12306
  "id": "clients.elevenlabs",
12061
12307
  "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.",
@@ -12320,202 +12566,6 @@ setBuildTimeData('clients.elevenlabs', {
12320
12566
  }
12321
12567
  });
12322
12568
 
12323
- setBuildTimeData('clients.supabase', {
12324
- "id": "clients.supabase",
12325
- "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).",
12326
- "shortcut": "clients.supabase",
12327
- "className": "SupabaseClient",
12328
- "methods": {
12329
- "from": {
12330
- "description": "Start a query on a Postgres table or view.",
12331
- "parameters": {
12332
- "table": {
12333
- "type": "string",
12334
- "description": "The table or view name to query"
12335
- }
12336
- },
12337
- "required": [
12338
- "table"
12339
- ],
12340
- "returns": "void"
12341
- },
12342
- "rpc": {
12343
- "description": "Call a Postgres function (RPC).",
12344
- "parameters": {
12345
- "fn": {
12346
- "type": "string",
12347
- "description": "The function name"
12348
- },
12349
- "params": {
12350
- "type": "Record<string, unknown>",
12351
- "description": "Arguments to pass to the function"
12352
- },
12353
- "options": {
12354
- "type": "{ head?: boolean; get?: boolean; count?: \"exact\" | \"planned\" | \"estimated\" }",
12355
- "description": "Optional settings (head, get, count)"
12356
- }
12357
- },
12358
- "required": [
12359
- "fn"
12360
- ],
12361
- "returns": "void"
12362
- },
12363
- "signInWithPassword": {
12364
- "description": "Sign in with email and password.",
12365
- "parameters": {
12366
- "email": {
12367
- "type": "string",
12368
- "description": "Parameter email"
12369
- },
12370
- "password": {
12371
- "type": "string",
12372
- "description": "Parameter password"
12373
- }
12374
- },
12375
- "required": [
12376
- "email",
12377
- "password"
12378
- ],
12379
- "returns": "void"
12380
- },
12381
- "signUp": {
12382
- "description": "Create a new user account with email and password.",
12383
- "parameters": {
12384
- "email": {
12385
- "type": "string",
12386
- "description": "Parameter email"
12387
- },
12388
- "password": {
12389
- "type": "string",
12390
- "description": "Parameter password"
12391
- }
12392
- },
12393
- "required": [
12394
- "email",
12395
- "password"
12396
- ],
12397
- "returns": "void"
12398
- },
12399
- "signOut": {
12400
- "description": "Sign the current user out.",
12401
- "parameters": {},
12402
- "required": [],
12403
- "returns": "void"
12404
- },
12405
- "getSession": {
12406
- "description": "Get the current session, if any.",
12407
- "parameters": {},
12408
- "required": [],
12409
- "returns": "void"
12410
- },
12411
- "getUser": {
12412
- "description": "Get the current user, if any.",
12413
- "parameters": {},
12414
- "required": [],
12415
- "returns": "void"
12416
- },
12417
- "invoke": {
12418
- "description": "Invoke a Supabase Edge Function by name.",
12419
- "parameters": {
12420
- "name": {
12421
- "type": "string",
12422
- "description": "Parameter name"
12423
- },
12424
- "body": {
12425
- "type": "any",
12426
- "description": "Parameter body"
12427
- }
12428
- },
12429
- "required": [
12430
- "name"
12431
- ],
12432
- "returns": "void"
12433
- },
12434
- "subscribe": {
12435
- "description": "Subscribe to realtime changes on a Postgres table.",
12436
- "parameters": {
12437
- "channelName": {
12438
- "type": "string",
12439
- "description": "A name for this subscription channel"
12440
- },
12441
- "table": {
12442
- "type": "string",
12443
- "description": "The table to listen to"
12444
- },
12445
- "callback": {
12446
- "type": "(payload: any) => void",
12447
- "description": "Called with the payload on each change"
12448
- },
12449
- "event": {
12450
- "type": "\"INSERT\" | \"UPDATE\" | \"DELETE\" | \"*\"",
12451
- "description": "The event type to listen for (default: all changes)"
12452
- }
12453
- },
12454
- "required": [
12455
- "channelName",
12456
- "table",
12457
- "callback"
12458
- ],
12459
- "returns": "RealtimeChannel"
12460
- },
12461
- "unsubscribe": {
12462
- "description": "Unsubscribe and remove a realtime channel by name.",
12463
- "parameters": {
12464
- "channelName": {
12465
- "type": "string",
12466
- "description": "The channel name to remove"
12467
- }
12468
- },
12469
- "required": [
12470
- "channelName"
12471
- ],
12472
- "returns": "void"
12473
- },
12474
- "unsubscribeAll": {
12475
- "description": "Unsubscribe and remove all realtime channels.",
12476
- "parameters": {},
12477
- "required": [],
12478
- "returns": "void"
12479
- },
12480
- "connect": {
12481
- "description": "Connect is a no-op since the Supabase SDK initializes on construction. The client is ready to use immediately after creation.",
12482
- "parameters": {},
12483
- "required": [],
12484
- "returns": "void"
12485
- },
12486
- "disconnect": {
12487
- "description": "Disconnect by signing out and removing all realtime channels.",
12488
- "parameters": {},
12489
- "required": [],
12490
- "returns": "void"
12491
- }
12492
- },
12493
- "getters": {
12494
- "sdk": {
12495
- "description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
12496
- "returns": "SupabaseSDKClient<any, any>"
12497
- },
12498
- "storage": {
12499
- "description": "Returns the Supabase Storage client for managing buckets and files.",
12500
- "returns": "any"
12501
- },
12502
- "functions": {
12503
- "description": "Returns the Supabase Functions client.",
12504
- "returns": "any"
12505
- }
12506
- },
12507
- "events": {},
12508
- "state": {},
12509
- "options": {},
12510
- "envVars": [],
12511
- "examples": [
12512
- {
12513
- "language": "ts",
12514
- "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})"
12515
- }
12516
- ]
12517
- });
12518
-
12519
12569
  setBuildTimeData('clients.comfyui', {
12520
12570
  "id": "clients.comfyui",
12521
12571
  "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.",
@@ -18540,7 +18590,7 @@ setContainerBuildTimeData('Container', {
18540
18590
 
18541
18591
  setContainerBuildTimeData('NodeContainer', {
18542
18592
  "className": "NodeContainer",
18543
- "description": "Server-side container for Node.js and Bun environments. Extends the base Container with file system access, process management, git integration, and other server-side capabilities. Auto-enables core features on construction: fs, proc, git, grep, os, networking, ui, vm, esbuild, helpers. Also attaches Client, Server, Command, Endpoint, and Selector helper types, providing `container.client()`, `container.server()`, `container.command()`, etc. factory methods.",
18593
+ "description": "Server-side container for Node.js and Bun environments. Extends the base Container with file system access, process management, git integration, and other server-side capabilities. Auto-enables core features on construction: fs, proc, git, grep, os, networking, ui, vm, transpiler, helpers. Also attaches Client, Server, Command, Endpoint, and Selector helper types, providing `container.client()`, `container.server()`, `container.command()`, etc. factory methods.",
18544
18594
  "methods": {},
18545
18595
  "getters": {
18546
18596
  "cwd": {
@@ -19566,76 +19616,6 @@ export const introspectionData = [
19566
19616
  }
19567
19617
  }
19568
19618
  },
19569
- {
19570
- "id": "features.esbuild",
19571
- "description": "A Feature for compiling typescript / esm modules, etc to JavaScript that the container can run at runtime. Uses esbuild for fast, reliable TypeScript/ESM transformation with full format support (esm, cjs, iife).",
19572
- "shortcut": "features.esbuild",
19573
- "className": "ESBuild",
19574
- "methods": {
19575
- "transformSync": {
19576
- "description": "/** Transform code synchronously",
19577
- "parameters": {
19578
- "code": {
19579
- "type": "string",
19580
- "description": "The code to transform"
19581
- },
19582
- "options": {
19583
- "type": "esbuild.TransformOptions",
19584
- "description": "The options to pass to esbuild"
19585
- }
19586
- },
19587
- "required": [
19588
- "code"
19589
- ],
19590
- "returns": "esbuild.TransformResult"
19591
- },
19592
- "transform": {
19593
- "description": "Transform code asynchronously",
19594
- "parameters": {
19595
- "code": {
19596
- "type": "string",
19597
- "description": "The code to transform"
19598
- },
19599
- "options": {
19600
- "type": "esbuild.TransformOptions",
19601
- "description": "The options to pass to esbuild"
19602
- }
19603
- },
19604
- "required": [
19605
- "code"
19606
- ],
19607
- "returns": "Promise<esbuild.TransformResult>"
19608
- },
19609
- "bundle": {
19610
- "description": "Bundle one or more entry points, resolving imports and requires into a single output. Supports Node platform by default so require() and Node builtins are handled. Returns in-memory output files unless write is enabled in options.",
19611
- "parameters": {
19612
- "entryPoints": {
19613
- "type": "string[]",
19614
- "description": "File paths to bundle from"
19615
- },
19616
- "options": {
19617
- "type": "esbuild.BuildOptions",
19618
- "description": "esbuild BuildOptions overrides"
19619
- }
19620
- },
19621
- "required": [
19622
- "entryPoints"
19623
- ],
19624
- "returns": "Promise<esbuild.BuildResult>"
19625
- }
19626
- },
19627
- "getters": {},
19628
- "events": {},
19629
- "state": {},
19630
- "options": {},
19631
- "envVars": [],
19632
- "examples": [
19633
- {
19634
- "language": "ts",
19635
- "code": "const esbuild = container.feature('esbuild')\nconst result = esbuild.transformSync('const x: number = 1')\nconsole.log(result.code) // 'const x = 1;\\n'"
19636
- }
19637
- ]
19638
- },
19639
19619
  {
19640
19620
  "id": "features.dns",
19641
19621
  "description": "The Dns feature provides structured DNS lookups by wrapping the `dig` CLI. All query methods parse dig output into typed JSON objects, making it easy to explore and audit a domain's DNS configuration programmatically.",
@@ -23590,6 +23570,126 @@ export const introspectionData = [
23590
23570
  }
23591
23571
  }
23592
23572
  },
23573
+ {
23574
+ "id": "features.transpiler",
23575
+ "description": "Transpile TypeScript, TSX, and JSX to JavaScript at runtime using Bun's built-in transpiler. Compile code strings on the fly without touching the filesystem or spawning external processes.",
23576
+ "shortcut": "features.transpiler",
23577
+ "className": "Transpiler",
23578
+ "methods": {
23579
+ "transformSync": {
23580
+ "description": "Transform code synchronously",
23581
+ "parameters": {
23582
+ "code": {
23583
+ "type": "string",
23584
+ "description": "The code to transform"
23585
+ },
23586
+ "options": {
23587
+ "type": "TransformOptions",
23588
+ "description": "Transform options (loader, format, minify)",
23589
+ "properties": {
23590
+ "loader": {
23591
+ "type": "'ts' | 'tsx' | 'jsx' | 'js'",
23592
+ "description": ""
23593
+ },
23594
+ "format": {
23595
+ "type": "'esm' | 'cjs'",
23596
+ "description": ""
23597
+ },
23598
+ "minify": {
23599
+ "type": "boolean",
23600
+ "description": ""
23601
+ }
23602
+ }
23603
+ }
23604
+ },
23605
+ "required": [
23606
+ "code"
23607
+ ],
23608
+ "returns": "TransformResult"
23609
+ },
23610
+ "transform": {
23611
+ "description": "Transform code asynchronously",
23612
+ "parameters": {
23613
+ "code": {
23614
+ "type": "string",
23615
+ "description": "The code to transform"
23616
+ },
23617
+ "options": {
23618
+ "type": "TransformOptions",
23619
+ "description": "Transform options (loader, format, minify)",
23620
+ "properties": {
23621
+ "loader": {
23622
+ "type": "'ts' | 'tsx' | 'jsx' | 'js'",
23623
+ "description": ""
23624
+ },
23625
+ "format": {
23626
+ "type": "'esm' | 'cjs'",
23627
+ "description": ""
23628
+ },
23629
+ "minify": {
23630
+ "type": "boolean",
23631
+ "description": ""
23632
+ }
23633
+ }
23634
+ }
23635
+ },
23636
+ "required": [
23637
+ "code"
23638
+ ],
23639
+ "returns": "Promise<TransformResult>"
23640
+ }
23641
+ },
23642
+ "getters": {},
23643
+ "events": {},
23644
+ "state": {},
23645
+ "options": {},
23646
+ "envVars": [],
23647
+ "examples": [
23648
+ {
23649
+ "language": "ts",
23650
+ "code": "const transpiler = container.feature('transpiler')\nconst result = transpiler.transformSync('const x: number = 1')\nconsole.log(result.code) // 'const x = 1;\\n'"
23651
+ }
23652
+ ],
23653
+ "types": {
23654
+ "TransformOptions": {
23655
+ "description": "",
23656
+ "properties": {
23657
+ "loader": {
23658
+ "type": "'ts' | 'tsx' | 'jsx' | 'js'",
23659
+ "description": "",
23660
+ "optional": true
23661
+ },
23662
+ "format": {
23663
+ "type": "'esm' | 'cjs'",
23664
+ "description": "",
23665
+ "optional": true
23666
+ },
23667
+ "minify": {
23668
+ "type": "boolean",
23669
+ "description": "",
23670
+ "optional": true
23671
+ }
23672
+ }
23673
+ },
23674
+ "TransformResult": {
23675
+ "description": "",
23676
+ "properties": {
23677
+ "code": {
23678
+ "type": "string",
23679
+ "description": ""
23680
+ },
23681
+ "map": {
23682
+ "type": "string",
23683
+ "description": ""
23684
+ },
23685
+ "warnings": {
23686
+ "type": "any[]",
23687
+ "description": ""
23688
+ }
23689
+ }
23690
+ }
23691
+ }
23692
+ },
23593
23693
  {
23594
23694
  "id": "features.yaml",
23595
23695
  "description": "The YAML feature provides utilities for parsing and stringifying YAML data. This feature wraps the js-yaml library to provide convenient methods for converting between YAML strings and JavaScript objects. It's automatically attached to Node containers for easy access.",
@@ -30627,6 +30727,201 @@ export const introspectionData = [
30627
30727
  }
30628
30728
  ]
30629
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"
30898
+ }
30899
+ },
30900
+ "getters": {
30901
+ "sdk": {
30902
+ "description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
30903
+ "returns": "SupabaseSDKClient<any, any>"
30904
+ },
30905
+ "storage": {
30906
+ "description": "Returns the Supabase Storage client for managing buckets and files.",
30907
+ "returns": "any"
30908
+ },
30909
+ "functions": {
30910
+ "description": "Returns the Supabase Functions client.",
30911
+ "returns": "any"
30912
+ }
30913
+ },
30914
+ "events": {},
30915
+ "state": {},
30916
+ "options": {},
30917
+ "envVars": [],
30918
+ "examples": [
30919
+ {
30920
+ "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})"
30922
+ }
30923
+ ]
30924
+ },
30630
30925
  {
30631
30926
  "id": "clients.elevenlabs",
30632
30927
  "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.",
@@ -30890,201 +31185,6 @@ export const introspectionData = [
30890
31185
  }
30891
31186
  }
30892
31187
  },
30893
- {
30894
- "id": "clients.supabase",
30895
- "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).",
30896
- "shortcut": "clients.supabase",
30897
- "className": "SupabaseClient",
30898
- "methods": {
30899
- "from": {
30900
- "description": "Start a query on a Postgres table or view.",
30901
- "parameters": {
30902
- "table": {
30903
- "type": "string",
30904
- "description": "The table or view name to query"
30905
- }
30906
- },
30907
- "required": [
30908
- "table"
30909
- ],
30910
- "returns": "void"
30911
- },
30912
- "rpc": {
30913
- "description": "Call a Postgres function (RPC).",
30914
- "parameters": {
30915
- "fn": {
30916
- "type": "string",
30917
- "description": "The function name"
30918
- },
30919
- "params": {
30920
- "type": "Record<string, unknown>",
30921
- "description": "Arguments to pass to the function"
30922
- },
30923
- "options": {
30924
- "type": "{ head?: boolean; get?: boolean; count?: \"exact\" | \"planned\" | \"estimated\" }",
30925
- "description": "Optional settings (head, get, count)"
30926
- }
30927
- },
30928
- "required": [
30929
- "fn"
30930
- ],
30931
- "returns": "void"
30932
- },
30933
- "signInWithPassword": {
30934
- "description": "Sign in with email and password.",
30935
- "parameters": {
30936
- "email": {
30937
- "type": "string",
30938
- "description": "Parameter email"
30939
- },
30940
- "password": {
30941
- "type": "string",
30942
- "description": "Parameter password"
30943
- }
30944
- },
30945
- "required": [
30946
- "email",
30947
- "password"
30948
- ],
30949
- "returns": "void"
30950
- },
30951
- "signUp": {
30952
- "description": "Create a new user account with email and password.",
30953
- "parameters": {
30954
- "email": {
30955
- "type": "string",
30956
- "description": "Parameter email"
30957
- },
30958
- "password": {
30959
- "type": "string",
30960
- "description": "Parameter password"
30961
- }
30962
- },
30963
- "required": [
30964
- "email",
30965
- "password"
30966
- ],
30967
- "returns": "void"
30968
- },
30969
- "signOut": {
30970
- "description": "Sign the current user out.",
30971
- "parameters": {},
30972
- "required": [],
30973
- "returns": "void"
30974
- },
30975
- "getSession": {
30976
- "description": "Get the current session, if any.",
30977
- "parameters": {},
30978
- "required": [],
30979
- "returns": "void"
30980
- },
30981
- "getUser": {
30982
- "description": "Get the current user, if any.",
30983
- "parameters": {},
30984
- "required": [],
30985
- "returns": "void"
30986
- },
30987
- "invoke": {
30988
- "description": "Invoke a Supabase Edge Function by name.",
30989
- "parameters": {
30990
- "name": {
30991
- "type": "string",
30992
- "description": "Parameter name"
30993
- },
30994
- "body": {
30995
- "type": "any",
30996
- "description": "Parameter body"
30997
- }
30998
- },
30999
- "required": [
31000
- "name"
31001
- ],
31002
- "returns": "void"
31003
- },
31004
- "subscribe": {
31005
- "description": "Subscribe to realtime changes on a Postgres table.",
31006
- "parameters": {
31007
- "channelName": {
31008
- "type": "string",
31009
- "description": "A name for this subscription channel"
31010
- },
31011
- "table": {
31012
- "type": "string",
31013
- "description": "The table to listen to"
31014
- },
31015
- "callback": {
31016
- "type": "(payload: any) => void",
31017
- "description": "Called with the payload on each change"
31018
- },
31019
- "event": {
31020
- "type": "\"INSERT\" | \"UPDATE\" | \"DELETE\" | \"*\"",
31021
- "description": "The event type to listen for (default: all changes)"
31022
- }
31023
- },
31024
- "required": [
31025
- "channelName",
31026
- "table",
31027
- "callback"
31028
- ],
31029
- "returns": "RealtimeChannel"
31030
- },
31031
- "unsubscribe": {
31032
- "description": "Unsubscribe and remove a realtime channel by name.",
31033
- "parameters": {
31034
- "channelName": {
31035
- "type": "string",
31036
- "description": "The channel name to remove"
31037
- }
31038
- },
31039
- "required": [
31040
- "channelName"
31041
- ],
31042
- "returns": "void"
31043
- },
31044
- "unsubscribeAll": {
31045
- "description": "Unsubscribe and remove all realtime channels.",
31046
- "parameters": {},
31047
- "required": [],
31048
- "returns": "void"
31049
- },
31050
- "connect": {
31051
- "description": "Connect is a no-op since the Supabase SDK initializes on construction. The client is ready to use immediately after creation.",
31052
- "parameters": {},
31053
- "required": [],
31054
- "returns": "void"
31055
- },
31056
- "disconnect": {
31057
- "description": "Disconnect by signing out and removing all realtime channels.",
31058
- "parameters": {},
31059
- "required": [],
31060
- "returns": "void"
31061
- }
31062
- },
31063
- "getters": {
31064
- "sdk": {
31065
- "description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
31066
- "returns": "SupabaseSDKClient<any, any>"
31067
- },
31068
- "storage": {
31069
- "description": "Returns the Supabase Storage client for managing buckets and files.",
31070
- "returns": "any"
31071
- },
31072
- "functions": {
31073
- "description": "Returns the Supabase Functions client.",
31074
- "returns": "any"
31075
- }
31076
- },
31077
- "events": {},
31078
- "state": {},
31079
- "options": {},
31080
- "envVars": [],
31081
- "examples": [
31082
- {
31083
- "language": "ts",
31084
- "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})"
31085
- }
31086
- ]
31087
- },
31088
31188
  {
31089
31189
  "id": "clients.comfyui",
31090
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.",
@@ -37093,7 +37193,7 @@ export const containerIntrospectionData = [
37093
37193
  },
37094
37194
  {
37095
37195
  "className": "NodeContainer",
37096
- "description": "Server-side container for Node.js and Bun environments. Extends the base Container with file system access, process management, git integration, and other server-side capabilities. Auto-enables core features on construction: fs, proc, git, grep, os, networking, ui, vm, esbuild, helpers. Also attaches Client, Server, Command, Endpoint, and Selector helper types, providing `container.client()`, `container.server()`, `container.command()`, etc. factory methods.",
37196
+ "description": "Server-side container for Node.js and Bun environments. Extends the base Container with file system access, process management, git integration, and other server-side capabilities. Auto-enables core features on construction: fs, proc, git, grep, os, networking, ui, vm, transpiler, helpers. Also attaches Client, Server, Command, Endpoint, and Selector helper types, providing `container.client()`, `container.server()`, `container.command()`, etc. factory methods.",
37097
37197
  "methods": {},
37098
37198
  "getters": {
37099
37199
  "cwd": {