@soederpop/luca 0.0.21 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/prompts/check-for-undocumented-features.md +27 -0
- package/luca.cli.ts +14 -1
- package/package.json +1 -1
- package/src/bootstrap/generated.ts +1 -1
- package/src/cli/cli.ts +45 -6
- package/src/commands/prompt.ts +18 -2
- package/src/introspection/generated.agi.ts +1207 -872
- package/src/introspection/generated.node.ts +841 -506
- package/src/introspection/generated.web.ts +1 -1
- package/src/node/container.ts +31 -1
- package/src/node/features/google-auth.ts +1 -0
- package/src/node/features/google-calendar.ts +5 -0
- package/src/node/features/google-docs.ts +8 -1
- package/src/node/features/google-drive.ts +6 -0
- package/src/node/features/google-mail.ts +540 -0
- package/src/node/features/google-sheets.ts +6 -0
- package/src/scaffolds/generated.ts +1 -1
|
@@ -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-
|
|
4
|
+
// Generated at: 2026-03-21T15:48:33.044Z
|
|
5
5
|
|
|
6
6
|
setBuildTimeData('features.googleDocs', {
|
|
7
7
|
"id": "features.googleDocs",
|
|
@@ -3270,6 +3270,174 @@ setBuildTimeData('features.repl', {
|
|
|
3270
3270
|
]
|
|
3271
3271
|
});
|
|
3272
3272
|
|
|
3273
|
+
setBuildTimeData('features.googleMail', {
|
|
3274
|
+
"id": "features.googleMail",
|
|
3275
|
+
"description": "Google Mail feature for searching, reading, and watching Gmail messages. Depends on the googleAuth feature for authentication. Creates a Gmail v1 API client lazily. Supports Gmail search query syntax, individual message reading, and polling-based new mail detection with event emission.",
|
|
3276
|
+
"shortcut": "features.googleMail",
|
|
3277
|
+
"className": "GoogleMail",
|
|
3278
|
+
"methods": {
|
|
3279
|
+
"search": {
|
|
3280
|
+
"description": "Search for messages using Gmail query syntax and/or structured filters.",
|
|
3281
|
+
"parameters": {
|
|
3282
|
+
"options": {
|
|
3283
|
+
"type": "SearchMailOptions",
|
|
3284
|
+
"description": "Search filters including query, from, to, subject, date ranges",
|
|
3285
|
+
"properties": {
|
|
3286
|
+
"query": {
|
|
3287
|
+
"type": "string",
|
|
3288
|
+
"description": ""
|
|
3289
|
+
},
|
|
3290
|
+
"from": {
|
|
3291
|
+
"type": "string",
|
|
3292
|
+
"description": ""
|
|
3293
|
+
},
|
|
3294
|
+
"to": {
|
|
3295
|
+
"type": "string",
|
|
3296
|
+
"description": ""
|
|
3297
|
+
},
|
|
3298
|
+
"subject": {
|
|
3299
|
+
"type": "string",
|
|
3300
|
+
"description": ""
|
|
3301
|
+
},
|
|
3302
|
+
"after": {
|
|
3303
|
+
"type": "string",
|
|
3304
|
+
"description": ""
|
|
3305
|
+
},
|
|
3306
|
+
"before": {
|
|
3307
|
+
"type": "string",
|
|
3308
|
+
"description": ""
|
|
3309
|
+
},
|
|
3310
|
+
"hasAttachment": {
|
|
3311
|
+
"type": "boolean",
|
|
3312
|
+
"description": ""
|
|
3313
|
+
},
|
|
3314
|
+
"label": {
|
|
3315
|
+
"type": "string",
|
|
3316
|
+
"description": ""
|
|
3317
|
+
},
|
|
3318
|
+
"isUnread": {
|
|
3319
|
+
"type": "boolean",
|
|
3320
|
+
"description": ""
|
|
3321
|
+
},
|
|
3322
|
+
"maxResults": {
|
|
3323
|
+
"type": "number",
|
|
3324
|
+
"description": ""
|
|
3325
|
+
},
|
|
3326
|
+
"pageToken": {
|
|
3327
|
+
"type": "string",
|
|
3328
|
+
"description": ""
|
|
3329
|
+
}
|
|
3330
|
+
}
|
|
3331
|
+
}
|
|
3332
|
+
},
|
|
3333
|
+
"required": [],
|
|
3334
|
+
"returns": "Promise<MailMessageList>"
|
|
3335
|
+
},
|
|
3336
|
+
"getMessage": {
|
|
3337
|
+
"description": "Get a single message by ID.",
|
|
3338
|
+
"parameters": {
|
|
3339
|
+
"messageId": {
|
|
3340
|
+
"type": "string",
|
|
3341
|
+
"description": "The message ID"
|
|
3342
|
+
},
|
|
3343
|
+
"format": {
|
|
3344
|
+
"type": "'full' | 'metadata' | 'minimal' | 'raw'",
|
|
3345
|
+
"description": "Message format (defaults to options.format or 'full')"
|
|
3346
|
+
}
|
|
3347
|
+
},
|
|
3348
|
+
"required": [
|
|
3349
|
+
"messageId"
|
|
3350
|
+
],
|
|
3351
|
+
"returns": "Promise<MailMessage>"
|
|
3352
|
+
},
|
|
3353
|
+
"getThread": {
|
|
3354
|
+
"description": "Get a full thread with all its messages.",
|
|
3355
|
+
"parameters": {
|
|
3356
|
+
"threadId": {
|
|
3357
|
+
"type": "string",
|
|
3358
|
+
"description": "The thread ID"
|
|
3359
|
+
}
|
|
3360
|
+
},
|
|
3361
|
+
"required": [
|
|
3362
|
+
"threadId"
|
|
3363
|
+
],
|
|
3364
|
+
"returns": "Promise<MailThread>"
|
|
3365
|
+
},
|
|
3366
|
+
"listLabels": {
|
|
3367
|
+
"description": "List all labels for the authenticated user.",
|
|
3368
|
+
"parameters": {},
|
|
3369
|
+
"required": [],
|
|
3370
|
+
"returns": "Promise<MailLabel[]>"
|
|
3371
|
+
},
|
|
3372
|
+
"startWatching": {
|
|
3373
|
+
"description": "Start watching for new mail by polling at a regular interval. Emits 'newMail' events with an array of new messages when they arrive. Uses Gmail history API to efficiently detect only new messages since the last check.",
|
|
3374
|
+
"parameters": {},
|
|
3375
|
+
"required": [],
|
|
3376
|
+
"returns": "Promise<void>"
|
|
3377
|
+
},
|
|
3378
|
+
"stopWatching": {
|
|
3379
|
+
"description": "Stop watching for new mail.",
|
|
3380
|
+
"parameters": {},
|
|
3381
|
+
"required": [],
|
|
3382
|
+
"returns": "void"
|
|
3383
|
+
}
|
|
3384
|
+
},
|
|
3385
|
+
"getters": {
|
|
3386
|
+
"auth": {
|
|
3387
|
+
"description": "Access the google-auth feature lazily.",
|
|
3388
|
+
"returns": "GoogleAuth"
|
|
3389
|
+
},
|
|
3390
|
+
"userId": {
|
|
3391
|
+
"description": "Default user ID from options or 'me'.",
|
|
3392
|
+
"returns": "string"
|
|
3393
|
+
},
|
|
3394
|
+
"defaultFormat": {
|
|
3395
|
+
"description": "Default message format from options or 'full'.",
|
|
3396
|
+
"returns": "'full' | 'metadata' | 'minimal' | 'raw'"
|
|
3397
|
+
},
|
|
3398
|
+
"pollInterval": {
|
|
3399
|
+
"description": "Polling interval from options or 30 seconds.",
|
|
3400
|
+
"returns": "number"
|
|
3401
|
+
}
|
|
3402
|
+
},
|
|
3403
|
+
"events": {
|
|
3404
|
+
"messagesFetched": {
|
|
3405
|
+
"name": "messagesFetched",
|
|
3406
|
+
"description": "Event emitted by GoogleMail",
|
|
3407
|
+
"arguments": {}
|
|
3408
|
+
},
|
|
3409
|
+
"error": {
|
|
3410
|
+
"name": "error",
|
|
3411
|
+
"description": "Event emitted by GoogleMail",
|
|
3412
|
+
"arguments": {}
|
|
3413
|
+
},
|
|
3414
|
+
"watchStarted": {
|
|
3415
|
+
"name": "watchStarted",
|
|
3416
|
+
"description": "Event emitted by GoogleMail",
|
|
3417
|
+
"arguments": {}
|
|
3418
|
+
},
|
|
3419
|
+
"watchStopped": {
|
|
3420
|
+
"name": "watchStopped",
|
|
3421
|
+
"description": "Event emitted by GoogleMail",
|
|
3422
|
+
"arguments": {}
|
|
3423
|
+
},
|
|
3424
|
+
"newMail": {
|
|
3425
|
+
"name": "newMail",
|
|
3426
|
+
"description": "Event emitted by GoogleMail",
|
|
3427
|
+
"arguments": {}
|
|
3428
|
+
}
|
|
3429
|
+
},
|
|
3430
|
+
"state": {},
|
|
3431
|
+
"options": {},
|
|
3432
|
+
"envVars": [],
|
|
3433
|
+
"examples": [
|
|
3434
|
+
{
|
|
3435
|
+
"language": "ts",
|
|
3436
|
+
"code": "const mail = container.feature('googleMail')\n\n// Search by sender\nconst fromBoss = await mail.search({ from: 'boss@company.com' })\n\n// Use Gmail query string\nconst unread = await mail.search({ query: 'is:unread category:primary' })\n\n// Read a specific message\nconst msg = await mail.getMessage('message-id-here')\n\n// Get a full thread\nconst thread = await mail.getThread('thread-id-here')\n\n// List labels\nconst labels = await mail.listLabels()\n\n// Watch for new mail (polls and emits 'newMail' events)\nmail.on('newMail', (messages) => {\n console.log(`Got ${messages.length} new messages!`)\n})\nawait mail.startWatching()\n\n// Stop watching\nmail.stopWatching()"
|
|
3437
|
+
}
|
|
3438
|
+
]
|
|
3439
|
+
});
|
|
3440
|
+
|
|
3273
3441
|
setBuildTimeData('features.os', {
|
|
3274
3442
|
"id": "features.os",
|
|
3275
3443
|
"description": "The OS feature provides access to operating system utilities and information. This feature wraps Node.js's built-in `os` module and provides convenient getters for system information like architecture, platform, directories, network interfaces, and hardware details.",
|
|
@@ -9989,302 +10157,106 @@ setBuildTimeData('clients.elevenlabs', {
|
|
|
9989
10157
|
]
|
|
9990
10158
|
});
|
|
9991
10159
|
|
|
9992
|
-
setBuildTimeData('clients.
|
|
9993
|
-
"id": "clients.
|
|
9994
|
-
"description": "
|
|
9995
|
-
"shortcut": "clients.
|
|
9996
|
-
"className": "
|
|
10160
|
+
setBuildTimeData('clients.comfyui', {
|
|
10161
|
+
"id": "clients.comfyui",
|
|
10162
|
+
"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.",
|
|
10163
|
+
"shortcut": "clients.comfyui",
|
|
10164
|
+
"className": "ComfyUIClient",
|
|
9997
10165
|
"methods": {
|
|
9998
|
-
"
|
|
9999
|
-
"description": "
|
|
10166
|
+
"queuePrompt": {
|
|
10167
|
+
"description": "Queue a prompt (API-format workflow) for execution.",
|
|
10000
10168
|
"parameters": {
|
|
10001
|
-
"
|
|
10169
|
+
"prompt": {
|
|
10170
|
+
"type": "Record<string, any>",
|
|
10171
|
+
"description": "The API-format workflow object"
|
|
10172
|
+
},
|
|
10173
|
+
"clientId": {
|
|
10002
10174
|
"type": "string",
|
|
10003
|
-
"description": "
|
|
10175
|
+
"description": "Override the client ID for this request"
|
|
10004
10176
|
}
|
|
10005
10177
|
},
|
|
10006
10178
|
"required": [
|
|
10007
|
-
"
|
|
10179
|
+
"prompt"
|
|
10008
10180
|
],
|
|
10009
|
-
"returns": "
|
|
10010
|
-
|
|
10011
|
-
|
|
10012
|
-
|
|
10013
|
-
|
|
10014
|
-
"fn": {
|
|
10015
|
-
"type": "string",
|
|
10016
|
-
"description": "The function name"
|
|
10017
|
-
},
|
|
10018
|
-
"params": {
|
|
10019
|
-
"type": "Record<string, unknown>",
|
|
10020
|
-
"description": "Arguments to pass to the function"
|
|
10021
|
-
},
|
|
10022
|
-
"options": {
|
|
10023
|
-
"type": "{ head?: boolean; get?: boolean; count?: \"exact\" | \"planned\" | \"estimated\" }",
|
|
10024
|
-
"description": "Optional settings (head, get, count)"
|
|
10181
|
+
"returns": "Promise<{ prompt_id: string; number: number }>",
|
|
10182
|
+
"examples": [
|
|
10183
|
+
{
|
|
10184
|
+
"language": "ts",
|
|
10185
|
+
"code": "const { prompt_id } = await comfy.queuePrompt(apiWorkflow)"
|
|
10025
10186
|
}
|
|
10026
|
-
|
|
10027
|
-
"required": [
|
|
10028
|
-
"fn"
|
|
10029
|
-
],
|
|
10030
|
-
"returns": "void"
|
|
10187
|
+
]
|
|
10031
10188
|
},
|
|
10032
|
-
"
|
|
10033
|
-
"description": "
|
|
10189
|
+
"getQueue": {
|
|
10190
|
+
"description": "Get the current prompt queue status.",
|
|
10191
|
+
"parameters": {},
|
|
10192
|
+
"required": [],
|
|
10193
|
+
"returns": "Promise<{ queue_running: any[]; queue_pending: any[] }>"
|
|
10194
|
+
},
|
|
10195
|
+
"getHistory": {
|
|
10196
|
+
"description": "Get execution history, optionally for a specific prompt.",
|
|
10034
10197
|
"parameters": {
|
|
10035
|
-
"
|
|
10036
|
-
"type": "string",
|
|
10037
|
-
"description": "Parameter email"
|
|
10038
|
-
},
|
|
10039
|
-
"password": {
|
|
10198
|
+
"promptId": {
|
|
10040
10199
|
"type": "string",
|
|
10041
|
-
"description": "
|
|
10200
|
+
"description": "If provided, returns history for this prompt only"
|
|
10042
10201
|
}
|
|
10043
10202
|
},
|
|
10044
|
-
"required": [
|
|
10045
|
-
|
|
10046
|
-
"password"
|
|
10047
|
-
],
|
|
10048
|
-
"returns": "void"
|
|
10203
|
+
"required": [],
|
|
10204
|
+
"returns": "Promise<Record<string, any>>"
|
|
10049
10205
|
},
|
|
10050
|
-
"
|
|
10051
|
-
"description": "
|
|
10206
|
+
"getSystemStats": {
|
|
10207
|
+
"description": "Get system stats including GPU memory and queue info.",
|
|
10208
|
+
"parameters": {},
|
|
10209
|
+
"required": [],
|
|
10210
|
+
"returns": "Promise<any>"
|
|
10211
|
+
},
|
|
10212
|
+
"getObjectInfo": {
|
|
10213
|
+
"description": "Get node type info with input/output schemas.",
|
|
10052
10214
|
"parameters": {
|
|
10053
|
-
"
|
|
10054
|
-
"type": "string",
|
|
10055
|
-
"description": "Parameter email"
|
|
10056
|
-
},
|
|
10057
|
-
"password": {
|
|
10215
|
+
"nodeClass": {
|
|
10058
10216
|
"type": "string",
|
|
10059
|
-
"description": "
|
|
10217
|
+
"description": "If provided, returns info for this node type only"
|
|
10060
10218
|
}
|
|
10061
10219
|
},
|
|
10062
|
-
"required": [
|
|
10063
|
-
|
|
10064
|
-
"password"
|
|
10065
|
-
],
|
|
10066
|
-
"returns": "void"
|
|
10220
|
+
"required": [],
|
|
10221
|
+
"returns": "Promise<any>"
|
|
10067
10222
|
},
|
|
10068
|
-
"
|
|
10069
|
-
"description": "
|
|
10223
|
+
"interrupt": {
|
|
10224
|
+
"description": "Interrupt the currently executing prompt.",
|
|
10070
10225
|
"parameters": {},
|
|
10071
10226
|
"required": [],
|
|
10072
|
-
"returns": "void"
|
|
10227
|
+
"returns": "Promise<void>"
|
|
10073
10228
|
},
|
|
10074
|
-
"
|
|
10075
|
-
"description": "
|
|
10076
|
-
"parameters": {
|
|
10229
|
+
"getModels": {
|
|
10230
|
+
"description": "List available models, optionally filtered by type.",
|
|
10231
|
+
"parameters": {
|
|
10232
|
+
"type": {
|
|
10233
|
+
"type": "string",
|
|
10234
|
+
"description": "Model type filter (e.g., 'checkpoints', 'loras')"
|
|
10235
|
+
}
|
|
10236
|
+
},
|
|
10077
10237
|
"required": [],
|
|
10078
|
-
"returns": "
|
|
10238
|
+
"returns": "Promise<string[]>"
|
|
10079
10239
|
},
|
|
10080
|
-
"
|
|
10081
|
-
"description": "
|
|
10240
|
+
"getEmbeddings": {
|
|
10241
|
+
"description": "List available embedding models.",
|
|
10082
10242
|
"parameters": {},
|
|
10083
10243
|
"required": [],
|
|
10084
|
-
"returns": "
|
|
10244
|
+
"returns": "Promise<string[]>"
|
|
10085
10245
|
},
|
|
10086
|
-
"
|
|
10087
|
-
"description": "
|
|
10246
|
+
"uploadImage": {
|
|
10247
|
+
"description": "Upload an image to ComfyUI's input directory.",
|
|
10088
10248
|
"parameters": {
|
|
10089
|
-
"
|
|
10249
|
+
"file": {
|
|
10250
|
+
"type": "Buffer | Blob",
|
|
10251
|
+
"description": "The image data as Buffer or Blob"
|
|
10252
|
+
},
|
|
10253
|
+
"filename": {
|
|
10090
10254
|
"type": "string",
|
|
10091
|
-
"description": "
|
|
10255
|
+
"description": "File name for the upload"
|
|
10092
10256
|
},
|
|
10093
|
-
"
|
|
10094
|
-
"type": "
|
|
10095
|
-
"description": "
|
|
10096
|
-
}
|
|
10097
|
-
},
|
|
10098
|
-
"required": [
|
|
10099
|
-
"name"
|
|
10100
|
-
],
|
|
10101
|
-
"returns": "void"
|
|
10102
|
-
},
|
|
10103
|
-
"subscribe": {
|
|
10104
|
-
"description": "Subscribe to realtime changes on a Postgres table.",
|
|
10105
|
-
"parameters": {
|
|
10106
|
-
"channelName": {
|
|
10107
|
-
"type": "string",
|
|
10108
|
-
"description": "A name for this subscription channel"
|
|
10109
|
-
},
|
|
10110
|
-
"table": {
|
|
10111
|
-
"type": "string",
|
|
10112
|
-
"description": "The table to listen to"
|
|
10113
|
-
},
|
|
10114
|
-
"callback": {
|
|
10115
|
-
"type": "(payload: any) => void",
|
|
10116
|
-
"description": "Called with the payload on each change"
|
|
10117
|
-
},
|
|
10118
|
-
"event": {
|
|
10119
|
-
"type": "\"INSERT\" | \"UPDATE\" | \"DELETE\" | \"*\"",
|
|
10120
|
-
"description": "The event type to listen for (default: all changes)"
|
|
10121
|
-
}
|
|
10122
|
-
},
|
|
10123
|
-
"required": [
|
|
10124
|
-
"channelName",
|
|
10125
|
-
"table",
|
|
10126
|
-
"callback"
|
|
10127
|
-
],
|
|
10128
|
-
"returns": "RealtimeChannel"
|
|
10129
|
-
},
|
|
10130
|
-
"unsubscribe": {
|
|
10131
|
-
"description": "Unsubscribe and remove a realtime channel by name.",
|
|
10132
|
-
"parameters": {
|
|
10133
|
-
"channelName": {
|
|
10134
|
-
"type": "string",
|
|
10135
|
-
"description": "The channel name to remove"
|
|
10136
|
-
}
|
|
10137
|
-
},
|
|
10138
|
-
"required": [
|
|
10139
|
-
"channelName"
|
|
10140
|
-
],
|
|
10141
|
-
"returns": "void"
|
|
10142
|
-
},
|
|
10143
|
-
"unsubscribeAll": {
|
|
10144
|
-
"description": "Unsubscribe and remove all realtime channels.",
|
|
10145
|
-
"parameters": {},
|
|
10146
|
-
"required": [],
|
|
10147
|
-
"returns": "void"
|
|
10148
|
-
},
|
|
10149
|
-
"connect": {
|
|
10150
|
-
"description": "Connect is a no-op since the Supabase SDK initializes on construction. The client is ready to use immediately after creation.",
|
|
10151
|
-
"parameters": {},
|
|
10152
|
-
"required": [],
|
|
10153
|
-
"returns": "void"
|
|
10154
|
-
},
|
|
10155
|
-
"disconnect": {
|
|
10156
|
-
"description": "Disconnect by signing out and removing all realtime channels.",
|
|
10157
|
-
"parameters": {},
|
|
10158
|
-
"required": [],
|
|
10159
|
-
"returns": "void"
|
|
10160
|
-
}
|
|
10161
|
-
},
|
|
10162
|
-
"getters": {
|
|
10163
|
-
"sdk": {
|
|
10164
|
-
"description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
|
|
10165
|
-
"returns": "SupabaseSDKClient<any, any>"
|
|
10166
|
-
},
|
|
10167
|
-
"storage": {
|
|
10168
|
-
"description": "Returns the Supabase Storage client for managing buckets and files.",
|
|
10169
|
-
"returns": "any"
|
|
10170
|
-
},
|
|
10171
|
-
"functions": {
|
|
10172
|
-
"description": "Returns the Supabase Functions client.",
|
|
10173
|
-
"returns": "any"
|
|
10174
|
-
}
|
|
10175
|
-
},
|
|
10176
|
-
"events": {},
|
|
10177
|
-
"state": {},
|
|
10178
|
-
"options": {},
|
|
10179
|
-
"envVars": [],
|
|
10180
|
-
"examples": [
|
|
10181
|
-
{
|
|
10182
|
-
"language": "ts",
|
|
10183
|
-
"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})"
|
|
10184
|
-
}
|
|
10185
|
-
]
|
|
10186
|
-
});
|
|
10187
|
-
|
|
10188
|
-
setBuildTimeData('clients.comfyui', {
|
|
10189
|
-
"id": "clients.comfyui",
|
|
10190
|
-
"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.",
|
|
10191
|
-
"shortcut": "clients.comfyui",
|
|
10192
|
-
"className": "ComfyUIClient",
|
|
10193
|
-
"methods": {
|
|
10194
|
-
"queuePrompt": {
|
|
10195
|
-
"description": "Queue a prompt (API-format workflow) for execution.",
|
|
10196
|
-
"parameters": {
|
|
10197
|
-
"prompt": {
|
|
10198
|
-
"type": "Record<string, any>",
|
|
10199
|
-
"description": "The API-format workflow object"
|
|
10200
|
-
},
|
|
10201
|
-
"clientId": {
|
|
10202
|
-
"type": "string",
|
|
10203
|
-
"description": "Override the client ID for this request"
|
|
10204
|
-
}
|
|
10205
|
-
},
|
|
10206
|
-
"required": [
|
|
10207
|
-
"prompt"
|
|
10208
|
-
],
|
|
10209
|
-
"returns": "Promise<{ prompt_id: string; number: number }>",
|
|
10210
|
-
"examples": [
|
|
10211
|
-
{
|
|
10212
|
-
"language": "ts",
|
|
10213
|
-
"code": "const { prompt_id } = await comfy.queuePrompt(apiWorkflow)"
|
|
10214
|
-
}
|
|
10215
|
-
]
|
|
10216
|
-
},
|
|
10217
|
-
"getQueue": {
|
|
10218
|
-
"description": "Get the current prompt queue status.",
|
|
10219
|
-
"parameters": {},
|
|
10220
|
-
"required": [],
|
|
10221
|
-
"returns": "Promise<{ queue_running: any[]; queue_pending: any[] }>"
|
|
10222
|
-
},
|
|
10223
|
-
"getHistory": {
|
|
10224
|
-
"description": "Get execution history, optionally for a specific prompt.",
|
|
10225
|
-
"parameters": {
|
|
10226
|
-
"promptId": {
|
|
10227
|
-
"type": "string",
|
|
10228
|
-
"description": "If provided, returns history for this prompt only"
|
|
10229
|
-
}
|
|
10230
|
-
},
|
|
10231
|
-
"required": [],
|
|
10232
|
-
"returns": "Promise<Record<string, any>>"
|
|
10233
|
-
},
|
|
10234
|
-
"getSystemStats": {
|
|
10235
|
-
"description": "Get system stats including GPU memory and queue info.",
|
|
10236
|
-
"parameters": {},
|
|
10237
|
-
"required": [],
|
|
10238
|
-
"returns": "Promise<any>"
|
|
10239
|
-
},
|
|
10240
|
-
"getObjectInfo": {
|
|
10241
|
-
"description": "Get node type info with input/output schemas.",
|
|
10242
|
-
"parameters": {
|
|
10243
|
-
"nodeClass": {
|
|
10244
|
-
"type": "string",
|
|
10245
|
-
"description": "If provided, returns info for this node type only"
|
|
10246
|
-
}
|
|
10247
|
-
},
|
|
10248
|
-
"required": [],
|
|
10249
|
-
"returns": "Promise<any>"
|
|
10250
|
-
},
|
|
10251
|
-
"interrupt": {
|
|
10252
|
-
"description": "Interrupt the currently executing prompt.",
|
|
10253
|
-
"parameters": {},
|
|
10254
|
-
"required": [],
|
|
10255
|
-
"returns": "Promise<void>"
|
|
10256
|
-
},
|
|
10257
|
-
"getModels": {
|
|
10258
|
-
"description": "List available models, optionally filtered by type.",
|
|
10259
|
-
"parameters": {
|
|
10260
|
-
"type": {
|
|
10261
|
-
"type": "string",
|
|
10262
|
-
"description": "Model type filter (e.g., 'checkpoints', 'loras')"
|
|
10263
|
-
}
|
|
10264
|
-
},
|
|
10265
|
-
"required": [],
|
|
10266
|
-
"returns": "Promise<string[]>"
|
|
10267
|
-
},
|
|
10268
|
-
"getEmbeddings": {
|
|
10269
|
-
"description": "List available embedding models.",
|
|
10270
|
-
"parameters": {},
|
|
10271
|
-
"required": [],
|
|
10272
|
-
"returns": "Promise<string[]>"
|
|
10273
|
-
},
|
|
10274
|
-
"uploadImage": {
|
|
10275
|
-
"description": "Upload an image to ComfyUI's input directory.",
|
|
10276
|
-
"parameters": {
|
|
10277
|
-
"file": {
|
|
10278
|
-
"type": "Buffer | Blob",
|
|
10279
|
-
"description": "The image data as Buffer or Blob"
|
|
10280
|
-
},
|
|
10281
|
-
"filename": {
|
|
10282
|
-
"type": "string",
|
|
10283
|
-
"description": "File name for the upload"
|
|
10284
|
-
},
|
|
10285
|
-
"opts": {
|
|
10286
|
-
"type": "{ subfolder?: string; type?: string; overwrite?: boolean }",
|
|
10287
|
-
"description": "Upload options (subfolder, type, overwrite)"
|
|
10257
|
+
"opts": {
|
|
10258
|
+
"type": "{ subfolder?: string; type?: string; overwrite?: boolean }",
|
|
10259
|
+
"description": "Upload options (subfolder, type, overwrite)"
|
|
10288
10260
|
}
|
|
10289
10261
|
},
|
|
10290
10262
|
"required": [
|
|
@@ -10437,6 +10409,202 @@ setBuildTimeData('clients.comfyui', {
|
|
|
10437
10409
|
]
|
|
10438
10410
|
});
|
|
10439
10411
|
|
|
10412
|
+
setBuildTimeData('clients.supabase', {
|
|
10413
|
+
"id": "clients.supabase",
|
|
10414
|
+
"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).",
|
|
10415
|
+
"shortcut": "clients.supabase",
|
|
10416
|
+
"className": "SupabaseClient",
|
|
10417
|
+
"methods": {
|
|
10418
|
+
"from": {
|
|
10419
|
+
"description": "Start a query on a Postgres table or view.",
|
|
10420
|
+
"parameters": {
|
|
10421
|
+
"table": {
|
|
10422
|
+
"type": "string",
|
|
10423
|
+
"description": "The table or view name to query"
|
|
10424
|
+
}
|
|
10425
|
+
},
|
|
10426
|
+
"required": [
|
|
10427
|
+
"table"
|
|
10428
|
+
],
|
|
10429
|
+
"returns": "void"
|
|
10430
|
+
},
|
|
10431
|
+
"rpc": {
|
|
10432
|
+
"description": "Call a Postgres function (RPC).",
|
|
10433
|
+
"parameters": {
|
|
10434
|
+
"fn": {
|
|
10435
|
+
"type": "string",
|
|
10436
|
+
"description": "The function name"
|
|
10437
|
+
},
|
|
10438
|
+
"params": {
|
|
10439
|
+
"type": "Record<string, unknown>",
|
|
10440
|
+
"description": "Arguments to pass to the function"
|
|
10441
|
+
},
|
|
10442
|
+
"options": {
|
|
10443
|
+
"type": "{ head?: boolean; get?: boolean; count?: \"exact\" | \"planned\" | \"estimated\" }",
|
|
10444
|
+
"description": "Optional settings (head, get, count)"
|
|
10445
|
+
}
|
|
10446
|
+
},
|
|
10447
|
+
"required": [
|
|
10448
|
+
"fn"
|
|
10449
|
+
],
|
|
10450
|
+
"returns": "void"
|
|
10451
|
+
},
|
|
10452
|
+
"signInWithPassword": {
|
|
10453
|
+
"description": "Sign in with email and password.",
|
|
10454
|
+
"parameters": {
|
|
10455
|
+
"email": {
|
|
10456
|
+
"type": "string",
|
|
10457
|
+
"description": "Parameter email"
|
|
10458
|
+
},
|
|
10459
|
+
"password": {
|
|
10460
|
+
"type": "string",
|
|
10461
|
+
"description": "Parameter password"
|
|
10462
|
+
}
|
|
10463
|
+
},
|
|
10464
|
+
"required": [
|
|
10465
|
+
"email",
|
|
10466
|
+
"password"
|
|
10467
|
+
],
|
|
10468
|
+
"returns": "void"
|
|
10469
|
+
},
|
|
10470
|
+
"signUp": {
|
|
10471
|
+
"description": "Create a new user account with email and password.",
|
|
10472
|
+
"parameters": {
|
|
10473
|
+
"email": {
|
|
10474
|
+
"type": "string",
|
|
10475
|
+
"description": "Parameter email"
|
|
10476
|
+
},
|
|
10477
|
+
"password": {
|
|
10478
|
+
"type": "string",
|
|
10479
|
+
"description": "Parameter password"
|
|
10480
|
+
}
|
|
10481
|
+
},
|
|
10482
|
+
"required": [
|
|
10483
|
+
"email",
|
|
10484
|
+
"password"
|
|
10485
|
+
],
|
|
10486
|
+
"returns": "void"
|
|
10487
|
+
},
|
|
10488
|
+
"signOut": {
|
|
10489
|
+
"description": "Sign the current user out.",
|
|
10490
|
+
"parameters": {},
|
|
10491
|
+
"required": [],
|
|
10492
|
+
"returns": "void"
|
|
10493
|
+
},
|
|
10494
|
+
"getSession": {
|
|
10495
|
+
"description": "Get the current session, if any.",
|
|
10496
|
+
"parameters": {},
|
|
10497
|
+
"required": [],
|
|
10498
|
+
"returns": "void"
|
|
10499
|
+
},
|
|
10500
|
+
"getUser": {
|
|
10501
|
+
"description": "Get the current user, if any.",
|
|
10502
|
+
"parameters": {},
|
|
10503
|
+
"required": [],
|
|
10504
|
+
"returns": "void"
|
|
10505
|
+
},
|
|
10506
|
+
"invoke": {
|
|
10507
|
+
"description": "Invoke a Supabase Edge Function by name.",
|
|
10508
|
+
"parameters": {
|
|
10509
|
+
"name": {
|
|
10510
|
+
"type": "string",
|
|
10511
|
+
"description": "Parameter name"
|
|
10512
|
+
},
|
|
10513
|
+
"body": {
|
|
10514
|
+
"type": "any",
|
|
10515
|
+
"description": "Parameter body"
|
|
10516
|
+
}
|
|
10517
|
+
},
|
|
10518
|
+
"required": [
|
|
10519
|
+
"name"
|
|
10520
|
+
],
|
|
10521
|
+
"returns": "void"
|
|
10522
|
+
},
|
|
10523
|
+
"subscribe": {
|
|
10524
|
+
"description": "Subscribe to realtime changes on a Postgres table.",
|
|
10525
|
+
"parameters": {
|
|
10526
|
+
"channelName": {
|
|
10527
|
+
"type": "string",
|
|
10528
|
+
"description": "A name for this subscription channel"
|
|
10529
|
+
},
|
|
10530
|
+
"table": {
|
|
10531
|
+
"type": "string",
|
|
10532
|
+
"description": "The table to listen to"
|
|
10533
|
+
},
|
|
10534
|
+
"callback": {
|
|
10535
|
+
"type": "(payload: any) => void",
|
|
10536
|
+
"description": "Called with the payload on each change"
|
|
10537
|
+
},
|
|
10538
|
+
"event": {
|
|
10539
|
+
"type": "\"INSERT\" | \"UPDATE\" | \"DELETE\" | \"*\"",
|
|
10540
|
+
"description": "The event type to listen for (default: all changes)"
|
|
10541
|
+
}
|
|
10542
|
+
},
|
|
10543
|
+
"required": [
|
|
10544
|
+
"channelName",
|
|
10545
|
+
"table",
|
|
10546
|
+
"callback"
|
|
10547
|
+
],
|
|
10548
|
+
"returns": "RealtimeChannel"
|
|
10549
|
+
},
|
|
10550
|
+
"unsubscribe": {
|
|
10551
|
+
"description": "Unsubscribe and remove a realtime channel by name.",
|
|
10552
|
+
"parameters": {
|
|
10553
|
+
"channelName": {
|
|
10554
|
+
"type": "string",
|
|
10555
|
+
"description": "The channel name to remove"
|
|
10556
|
+
}
|
|
10557
|
+
},
|
|
10558
|
+
"required": [
|
|
10559
|
+
"channelName"
|
|
10560
|
+
],
|
|
10561
|
+
"returns": "void"
|
|
10562
|
+
},
|
|
10563
|
+
"unsubscribeAll": {
|
|
10564
|
+
"description": "Unsubscribe and remove all realtime channels.",
|
|
10565
|
+
"parameters": {},
|
|
10566
|
+
"required": [],
|
|
10567
|
+
"returns": "void"
|
|
10568
|
+
},
|
|
10569
|
+
"connect": {
|
|
10570
|
+
"description": "Connect is a no-op since the Supabase SDK initializes on construction. The client is ready to use immediately after creation.",
|
|
10571
|
+
"parameters": {},
|
|
10572
|
+
"required": [],
|
|
10573
|
+
"returns": "void"
|
|
10574
|
+
},
|
|
10575
|
+
"disconnect": {
|
|
10576
|
+
"description": "Disconnect by signing out and removing all realtime channels.",
|
|
10577
|
+
"parameters": {},
|
|
10578
|
+
"required": [],
|
|
10579
|
+
"returns": "void"
|
|
10580
|
+
}
|
|
10581
|
+
},
|
|
10582
|
+
"getters": {
|
|
10583
|
+
"sdk": {
|
|
10584
|
+
"description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
|
|
10585
|
+
"returns": "SupabaseSDKClient<any, any>"
|
|
10586
|
+
},
|
|
10587
|
+
"storage": {
|
|
10588
|
+
"description": "Returns the Supabase Storage client for managing buckets and files.",
|
|
10589
|
+
"returns": "any"
|
|
10590
|
+
},
|
|
10591
|
+
"functions": {
|
|
10592
|
+
"description": "Returns the Supabase Functions client.",
|
|
10593
|
+
"returns": "any"
|
|
10594
|
+
}
|
|
10595
|
+
},
|
|
10596
|
+
"events": {},
|
|
10597
|
+
"state": {},
|
|
10598
|
+
"options": {},
|
|
10599
|
+
"envVars": [],
|
|
10600
|
+
"examples": [
|
|
10601
|
+
{
|
|
10602
|
+
"language": "ts",
|
|
10603
|
+
"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})"
|
|
10604
|
+
}
|
|
10605
|
+
]
|
|
10606
|
+
});
|
|
10607
|
+
|
|
10440
10608
|
setBuildTimeData('servers.mcp', {
|
|
10441
10609
|
"id": "servers.mcp",
|
|
10442
10610
|
"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).",
|
|
@@ -14461,33 +14629,200 @@ export const introspectionData = [
|
|
|
14461
14629
|
}
|
|
14462
14630
|
},
|
|
14463
14631
|
"required": [],
|
|
14464
|
-
"returns": "void",
|
|
14465
|
-
"examples": [
|
|
14466
|
-
{
|
|
14467
|
-
"language": "ts",
|
|
14468
|
-
"code": "const repl = container.feature('repl', { enable: true })\nawait repl.start({\n context: { db: myDatabase },\n historyPath: '.repl-history'\n})"
|
|
14632
|
+
"returns": "void",
|
|
14633
|
+
"examples": [
|
|
14634
|
+
{
|
|
14635
|
+
"language": "ts",
|
|
14636
|
+
"code": "const repl = container.feature('repl', { enable: true })\nawait repl.start({\n context: { db: myDatabase },\n historyPath: '.repl-history'\n})"
|
|
14637
|
+
}
|
|
14638
|
+
]
|
|
14639
|
+
}
|
|
14640
|
+
},
|
|
14641
|
+
"getters": {
|
|
14642
|
+
"isStarted": {
|
|
14643
|
+
"description": "Whether the REPL session is currently running.",
|
|
14644
|
+
"returns": "any"
|
|
14645
|
+
},
|
|
14646
|
+
"vmContext": {
|
|
14647
|
+
"description": "The VM context object used for evaluating expressions in the REPL.",
|
|
14648
|
+
"returns": "any"
|
|
14649
|
+
}
|
|
14650
|
+
},
|
|
14651
|
+
"events": {},
|
|
14652
|
+
"state": {},
|
|
14653
|
+
"options": {},
|
|
14654
|
+
"envVars": [],
|
|
14655
|
+
"examples": [
|
|
14656
|
+
{
|
|
14657
|
+
"language": "ts",
|
|
14658
|
+
"code": "const repl = container.feature('repl', { enable: true })\nawait repl.start({ context: { myVar: 42 } })"
|
|
14659
|
+
}
|
|
14660
|
+
]
|
|
14661
|
+
},
|
|
14662
|
+
{
|
|
14663
|
+
"id": "features.googleMail",
|
|
14664
|
+
"description": "Google Mail feature for searching, reading, and watching Gmail messages. Depends on the googleAuth feature for authentication. Creates a Gmail v1 API client lazily. Supports Gmail search query syntax, individual message reading, and polling-based new mail detection with event emission.",
|
|
14665
|
+
"shortcut": "features.googleMail",
|
|
14666
|
+
"className": "GoogleMail",
|
|
14667
|
+
"methods": {
|
|
14668
|
+
"search": {
|
|
14669
|
+
"description": "Search for messages using Gmail query syntax and/or structured filters.",
|
|
14670
|
+
"parameters": {
|
|
14671
|
+
"options": {
|
|
14672
|
+
"type": "SearchMailOptions",
|
|
14673
|
+
"description": "Search filters including query, from, to, subject, date ranges",
|
|
14674
|
+
"properties": {
|
|
14675
|
+
"query": {
|
|
14676
|
+
"type": "string",
|
|
14677
|
+
"description": ""
|
|
14678
|
+
},
|
|
14679
|
+
"from": {
|
|
14680
|
+
"type": "string",
|
|
14681
|
+
"description": ""
|
|
14682
|
+
},
|
|
14683
|
+
"to": {
|
|
14684
|
+
"type": "string",
|
|
14685
|
+
"description": ""
|
|
14686
|
+
},
|
|
14687
|
+
"subject": {
|
|
14688
|
+
"type": "string",
|
|
14689
|
+
"description": ""
|
|
14690
|
+
},
|
|
14691
|
+
"after": {
|
|
14692
|
+
"type": "string",
|
|
14693
|
+
"description": ""
|
|
14694
|
+
},
|
|
14695
|
+
"before": {
|
|
14696
|
+
"type": "string",
|
|
14697
|
+
"description": ""
|
|
14698
|
+
},
|
|
14699
|
+
"hasAttachment": {
|
|
14700
|
+
"type": "boolean",
|
|
14701
|
+
"description": ""
|
|
14702
|
+
},
|
|
14703
|
+
"label": {
|
|
14704
|
+
"type": "string",
|
|
14705
|
+
"description": ""
|
|
14706
|
+
},
|
|
14707
|
+
"isUnread": {
|
|
14708
|
+
"type": "boolean",
|
|
14709
|
+
"description": ""
|
|
14710
|
+
},
|
|
14711
|
+
"maxResults": {
|
|
14712
|
+
"type": "number",
|
|
14713
|
+
"description": ""
|
|
14714
|
+
},
|
|
14715
|
+
"pageToken": {
|
|
14716
|
+
"type": "string",
|
|
14717
|
+
"description": ""
|
|
14718
|
+
}
|
|
14719
|
+
}
|
|
14720
|
+
}
|
|
14721
|
+
},
|
|
14722
|
+
"required": [],
|
|
14723
|
+
"returns": "Promise<MailMessageList>"
|
|
14724
|
+
},
|
|
14725
|
+
"getMessage": {
|
|
14726
|
+
"description": "Get a single message by ID.",
|
|
14727
|
+
"parameters": {
|
|
14728
|
+
"messageId": {
|
|
14729
|
+
"type": "string",
|
|
14730
|
+
"description": "The message ID"
|
|
14731
|
+
},
|
|
14732
|
+
"format": {
|
|
14733
|
+
"type": "'full' | 'metadata' | 'minimal' | 'raw'",
|
|
14734
|
+
"description": "Message format (defaults to options.format or 'full')"
|
|
14469
14735
|
}
|
|
14470
|
-
|
|
14736
|
+
},
|
|
14737
|
+
"required": [
|
|
14738
|
+
"messageId"
|
|
14739
|
+
],
|
|
14740
|
+
"returns": "Promise<MailMessage>"
|
|
14741
|
+
},
|
|
14742
|
+
"getThread": {
|
|
14743
|
+
"description": "Get a full thread with all its messages.",
|
|
14744
|
+
"parameters": {
|
|
14745
|
+
"threadId": {
|
|
14746
|
+
"type": "string",
|
|
14747
|
+
"description": "The thread ID"
|
|
14748
|
+
}
|
|
14749
|
+
},
|
|
14750
|
+
"required": [
|
|
14751
|
+
"threadId"
|
|
14752
|
+
],
|
|
14753
|
+
"returns": "Promise<MailThread>"
|
|
14754
|
+
},
|
|
14755
|
+
"listLabels": {
|
|
14756
|
+
"description": "List all labels for the authenticated user.",
|
|
14757
|
+
"parameters": {},
|
|
14758
|
+
"required": [],
|
|
14759
|
+
"returns": "Promise<MailLabel[]>"
|
|
14760
|
+
},
|
|
14761
|
+
"startWatching": {
|
|
14762
|
+
"description": "Start watching for new mail by polling at a regular interval. Emits 'newMail' events with an array of new messages when they arrive. Uses Gmail history API to efficiently detect only new messages since the last check.",
|
|
14763
|
+
"parameters": {},
|
|
14764
|
+
"required": [],
|
|
14765
|
+
"returns": "Promise<void>"
|
|
14766
|
+
},
|
|
14767
|
+
"stopWatching": {
|
|
14768
|
+
"description": "Stop watching for new mail.",
|
|
14769
|
+
"parameters": {},
|
|
14770
|
+
"required": [],
|
|
14771
|
+
"returns": "void"
|
|
14471
14772
|
}
|
|
14472
14773
|
},
|
|
14473
14774
|
"getters": {
|
|
14474
|
-
"
|
|
14475
|
-
"description": "
|
|
14476
|
-
"returns": "
|
|
14775
|
+
"auth": {
|
|
14776
|
+
"description": "Access the google-auth feature lazily.",
|
|
14777
|
+
"returns": "GoogleAuth"
|
|
14477
14778
|
},
|
|
14478
|
-
"
|
|
14479
|
-
"description": "
|
|
14480
|
-
"returns": "
|
|
14779
|
+
"userId": {
|
|
14780
|
+
"description": "Default user ID from options or 'me'.",
|
|
14781
|
+
"returns": "string"
|
|
14782
|
+
},
|
|
14783
|
+
"defaultFormat": {
|
|
14784
|
+
"description": "Default message format from options or 'full'.",
|
|
14785
|
+
"returns": "'full' | 'metadata' | 'minimal' | 'raw'"
|
|
14786
|
+
},
|
|
14787
|
+
"pollInterval": {
|
|
14788
|
+
"description": "Polling interval from options or 30 seconds.",
|
|
14789
|
+
"returns": "number"
|
|
14790
|
+
}
|
|
14791
|
+
},
|
|
14792
|
+
"events": {
|
|
14793
|
+
"messagesFetched": {
|
|
14794
|
+
"name": "messagesFetched",
|
|
14795
|
+
"description": "Event emitted by GoogleMail",
|
|
14796
|
+
"arguments": {}
|
|
14797
|
+
},
|
|
14798
|
+
"error": {
|
|
14799
|
+
"name": "error",
|
|
14800
|
+
"description": "Event emitted by GoogleMail",
|
|
14801
|
+
"arguments": {}
|
|
14802
|
+
},
|
|
14803
|
+
"watchStarted": {
|
|
14804
|
+
"name": "watchStarted",
|
|
14805
|
+
"description": "Event emitted by GoogleMail",
|
|
14806
|
+
"arguments": {}
|
|
14807
|
+
},
|
|
14808
|
+
"watchStopped": {
|
|
14809
|
+
"name": "watchStopped",
|
|
14810
|
+
"description": "Event emitted by GoogleMail",
|
|
14811
|
+
"arguments": {}
|
|
14812
|
+
},
|
|
14813
|
+
"newMail": {
|
|
14814
|
+
"name": "newMail",
|
|
14815
|
+
"description": "Event emitted by GoogleMail",
|
|
14816
|
+
"arguments": {}
|
|
14481
14817
|
}
|
|
14482
14818
|
},
|
|
14483
|
-
"events": {},
|
|
14484
14819
|
"state": {},
|
|
14485
14820
|
"options": {},
|
|
14486
14821
|
"envVars": [],
|
|
14487
14822
|
"examples": [
|
|
14488
14823
|
{
|
|
14489
14824
|
"language": "ts",
|
|
14490
|
-
"code": "const
|
|
14825
|
+
"code": "const mail = container.feature('googleMail')\n\n// Search by sender\nconst fromBoss = await mail.search({ from: 'boss@company.com' })\n\n// Use Gmail query string\nconst unread = await mail.search({ query: 'is:unread category:primary' })\n\n// Read a specific message\nconst msg = await mail.getMessage('message-id-here')\n\n// Get a full thread\nconst thread = await mail.getThread('thread-id-here')\n\n// List labels\nconst labels = await mail.listLabels()\n\n// Watch for new mail (polls and emits 'newMail' events)\nmail.on('newMail', (messages) => {\n console.log(`Got ${messages.length} new messages!`)\n})\nawait mail.startWatching()\n\n// Stop watching\nmail.stopWatching()"
|
|
14491
14826
|
}
|
|
14492
14827
|
]
|
|
14493
14828
|
},
|
|
@@ -21128,248 +21463,53 @@ export const introspectionData = [
|
|
|
21128
21463
|
"disableCache": {
|
|
21129
21464
|
"type": "boolean",
|
|
21130
21465
|
"description": ""
|
|
21131
|
-
}
|
|
21132
|
-
}
|
|
21133
|
-
}
|
|
21134
|
-
},
|
|
21135
|
-
"required": [
|
|
21136
|
-
"text",
|
|
21137
|
-
"outputPath"
|
|
21138
|
-
],
|
|
21139
|
-
"returns": "Promise<string>",
|
|
21140
|
-
"examples": [
|
|
21141
|
-
{
|
|
21142
|
-
"language": "ts",
|
|
21143
|
-
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
21144
|
-
}
|
|
21145
|
-
]
|
|
21146
|
-
}
|
|
21147
|
-
},
|
|
21148
|
-
"getters": {
|
|
21149
|
-
"apiKey": {
|
|
21150
|
-
"description": "The resolved API key from options or environment.",
|
|
21151
|
-
"returns": "string"
|
|
21152
|
-
}
|
|
21153
|
-
},
|
|
21154
|
-
"events": {
|
|
21155
|
-
"failure": {
|
|
21156
|
-
"name": "failure",
|
|
21157
|
-
"description": "Event emitted by ElevenLabsClient",
|
|
21158
|
-
"arguments": {}
|
|
21159
|
-
},
|
|
21160
|
-
"voices": {
|
|
21161
|
-
"name": "voices",
|
|
21162
|
-
"description": "Event emitted by ElevenLabsClient",
|
|
21163
|
-
"arguments": {}
|
|
21164
|
-
},
|
|
21165
|
-
"speech": {
|
|
21166
|
-
"name": "speech",
|
|
21167
|
-
"description": "Event emitted by ElevenLabsClient",
|
|
21168
|
-
"arguments": {}
|
|
21169
|
-
}
|
|
21170
|
-
},
|
|
21171
|
-
"state": {},
|
|
21172
|
-
"options": {},
|
|
21173
|
-
"envVars": [],
|
|
21174
|
-
"examples": [
|
|
21175
|
-
{
|
|
21176
|
-
"language": "ts",
|
|
21177
|
-
"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"
|
|
21178
|
-
}
|
|
21179
|
-
]
|
|
21180
|
-
},
|
|
21181
|
-
{
|
|
21182
|
-
"id": "clients.supabase",
|
|
21183
|
-
"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).",
|
|
21184
|
-
"shortcut": "clients.supabase",
|
|
21185
|
-
"className": "SupabaseClient",
|
|
21186
|
-
"methods": {
|
|
21187
|
-
"from": {
|
|
21188
|
-
"description": "Start a query on a Postgres table or view.",
|
|
21189
|
-
"parameters": {
|
|
21190
|
-
"table": {
|
|
21191
|
-
"type": "string",
|
|
21192
|
-
"description": "The table or view name to query"
|
|
21193
|
-
}
|
|
21194
|
-
},
|
|
21195
|
-
"required": [
|
|
21196
|
-
"table"
|
|
21197
|
-
],
|
|
21198
|
-
"returns": "void"
|
|
21199
|
-
},
|
|
21200
|
-
"rpc": {
|
|
21201
|
-
"description": "Call a Postgres function (RPC).",
|
|
21202
|
-
"parameters": {
|
|
21203
|
-
"fn": {
|
|
21204
|
-
"type": "string",
|
|
21205
|
-
"description": "The function name"
|
|
21206
|
-
},
|
|
21207
|
-
"params": {
|
|
21208
|
-
"type": "Record<string, unknown>",
|
|
21209
|
-
"description": "Arguments to pass to the function"
|
|
21210
|
-
},
|
|
21211
|
-
"options": {
|
|
21212
|
-
"type": "{ head?: boolean; get?: boolean; count?: \"exact\" | \"planned\" | \"estimated\" }",
|
|
21213
|
-
"description": "Optional settings (head, get, count)"
|
|
21214
|
-
}
|
|
21215
|
-
},
|
|
21216
|
-
"required": [
|
|
21217
|
-
"fn"
|
|
21218
|
-
],
|
|
21219
|
-
"returns": "void"
|
|
21220
|
-
},
|
|
21221
|
-
"signInWithPassword": {
|
|
21222
|
-
"description": "Sign in with email and password.",
|
|
21223
|
-
"parameters": {
|
|
21224
|
-
"email": {
|
|
21225
|
-
"type": "string",
|
|
21226
|
-
"description": "Parameter email"
|
|
21227
|
-
},
|
|
21228
|
-
"password": {
|
|
21229
|
-
"type": "string",
|
|
21230
|
-
"description": "Parameter password"
|
|
21231
|
-
}
|
|
21232
|
-
},
|
|
21233
|
-
"required": [
|
|
21234
|
-
"email",
|
|
21235
|
-
"password"
|
|
21236
|
-
],
|
|
21237
|
-
"returns": "void"
|
|
21238
|
-
},
|
|
21239
|
-
"signUp": {
|
|
21240
|
-
"description": "Create a new user account with email and password.",
|
|
21241
|
-
"parameters": {
|
|
21242
|
-
"email": {
|
|
21243
|
-
"type": "string",
|
|
21244
|
-
"description": "Parameter email"
|
|
21245
|
-
},
|
|
21246
|
-
"password": {
|
|
21247
|
-
"type": "string",
|
|
21248
|
-
"description": "Parameter password"
|
|
21249
|
-
}
|
|
21250
|
-
},
|
|
21251
|
-
"required": [
|
|
21252
|
-
"email",
|
|
21253
|
-
"password"
|
|
21254
|
-
],
|
|
21255
|
-
"returns": "void"
|
|
21256
|
-
},
|
|
21257
|
-
"signOut": {
|
|
21258
|
-
"description": "Sign the current user out.",
|
|
21259
|
-
"parameters": {},
|
|
21260
|
-
"required": [],
|
|
21261
|
-
"returns": "void"
|
|
21262
|
-
},
|
|
21263
|
-
"getSession": {
|
|
21264
|
-
"description": "Get the current session, if any.",
|
|
21265
|
-
"parameters": {},
|
|
21266
|
-
"required": [],
|
|
21267
|
-
"returns": "void"
|
|
21268
|
-
},
|
|
21269
|
-
"getUser": {
|
|
21270
|
-
"description": "Get the current user, if any.",
|
|
21271
|
-
"parameters": {},
|
|
21272
|
-
"required": [],
|
|
21273
|
-
"returns": "void"
|
|
21274
|
-
},
|
|
21275
|
-
"invoke": {
|
|
21276
|
-
"description": "Invoke a Supabase Edge Function by name.",
|
|
21277
|
-
"parameters": {
|
|
21278
|
-
"name": {
|
|
21279
|
-
"type": "string",
|
|
21280
|
-
"description": "Parameter name"
|
|
21281
|
-
},
|
|
21282
|
-
"body": {
|
|
21283
|
-
"type": "any",
|
|
21284
|
-
"description": "Parameter body"
|
|
21285
|
-
}
|
|
21286
|
-
},
|
|
21287
|
-
"required": [
|
|
21288
|
-
"name"
|
|
21289
|
-
],
|
|
21290
|
-
"returns": "void"
|
|
21291
|
-
},
|
|
21292
|
-
"subscribe": {
|
|
21293
|
-
"description": "Subscribe to realtime changes on a Postgres table.",
|
|
21294
|
-
"parameters": {
|
|
21295
|
-
"channelName": {
|
|
21296
|
-
"type": "string",
|
|
21297
|
-
"description": "A name for this subscription channel"
|
|
21298
|
-
},
|
|
21299
|
-
"table": {
|
|
21300
|
-
"type": "string",
|
|
21301
|
-
"description": "The table to listen to"
|
|
21302
|
-
},
|
|
21303
|
-
"callback": {
|
|
21304
|
-
"type": "(payload: any) => void",
|
|
21305
|
-
"description": "Called with the payload on each change"
|
|
21306
|
-
},
|
|
21307
|
-
"event": {
|
|
21308
|
-
"type": "\"INSERT\" | \"UPDATE\" | \"DELETE\" | \"*\"",
|
|
21309
|
-
"description": "The event type to listen for (default: all changes)"
|
|
21310
|
-
}
|
|
21311
|
-
},
|
|
21312
|
-
"required": [
|
|
21313
|
-
"channelName",
|
|
21314
|
-
"table",
|
|
21315
|
-
"callback"
|
|
21316
|
-
],
|
|
21317
|
-
"returns": "RealtimeChannel"
|
|
21318
|
-
},
|
|
21319
|
-
"unsubscribe": {
|
|
21320
|
-
"description": "Unsubscribe and remove a realtime channel by name.",
|
|
21321
|
-
"parameters": {
|
|
21322
|
-
"channelName": {
|
|
21323
|
-
"type": "string",
|
|
21324
|
-
"description": "The channel name to remove"
|
|
21466
|
+
}
|
|
21467
|
+
}
|
|
21325
21468
|
}
|
|
21326
21469
|
},
|
|
21327
21470
|
"required": [
|
|
21328
|
-
"
|
|
21471
|
+
"text",
|
|
21472
|
+
"outputPath"
|
|
21329
21473
|
],
|
|
21330
|
-
"returns": "
|
|
21331
|
-
|
|
21332
|
-
|
|
21333
|
-
|
|
21334
|
-
|
|
21335
|
-
|
|
21336
|
-
|
|
21337
|
-
},
|
|
21338
|
-
"connect": {
|
|
21339
|
-
"description": "Connect is a no-op since the Supabase SDK initializes on construction. The client is ready to use immediately after creation.",
|
|
21340
|
-
"parameters": {},
|
|
21341
|
-
"required": [],
|
|
21342
|
-
"returns": "void"
|
|
21343
|
-
},
|
|
21344
|
-
"disconnect": {
|
|
21345
|
-
"description": "Disconnect by signing out and removing all realtime channels.",
|
|
21346
|
-
"parameters": {},
|
|
21347
|
-
"required": [],
|
|
21348
|
-
"returns": "void"
|
|
21474
|
+
"returns": "Promise<string>",
|
|
21475
|
+
"examples": [
|
|
21476
|
+
{
|
|
21477
|
+
"language": "ts",
|
|
21478
|
+
"code": "const path = await el.say('Hello world', './hello.mp3')\nconsole.log(`Audio saved to ${path}`)"
|
|
21479
|
+
}
|
|
21480
|
+
]
|
|
21349
21481
|
}
|
|
21350
21482
|
},
|
|
21351
21483
|
"getters": {
|
|
21352
|
-
"
|
|
21353
|
-
"description": "
|
|
21354
|
-
"returns": "
|
|
21484
|
+
"apiKey": {
|
|
21485
|
+
"description": "The resolved API key from options or environment.",
|
|
21486
|
+
"returns": "string"
|
|
21487
|
+
}
|
|
21488
|
+
},
|
|
21489
|
+
"events": {
|
|
21490
|
+
"failure": {
|
|
21491
|
+
"name": "failure",
|
|
21492
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
21493
|
+
"arguments": {}
|
|
21355
21494
|
},
|
|
21356
|
-
"
|
|
21357
|
-
"
|
|
21358
|
-
"
|
|
21495
|
+
"voices": {
|
|
21496
|
+
"name": "voices",
|
|
21497
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
21498
|
+
"arguments": {}
|
|
21359
21499
|
},
|
|
21360
|
-
"
|
|
21361
|
-
"
|
|
21362
|
-
"
|
|
21500
|
+
"speech": {
|
|
21501
|
+
"name": "speech",
|
|
21502
|
+
"description": "Event emitted by ElevenLabsClient",
|
|
21503
|
+
"arguments": {}
|
|
21363
21504
|
}
|
|
21364
21505
|
},
|
|
21365
|
-
"events": {},
|
|
21366
21506
|
"state": {},
|
|
21367
21507
|
"options": {},
|
|
21368
21508
|
"envVars": [],
|
|
21369
21509
|
"examples": [
|
|
21370
21510
|
{
|
|
21371
21511
|
"language": "ts",
|
|
21372
|
-
"code": "const
|
|
21512
|
+
"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"
|
|
21373
21513
|
}
|
|
21374
21514
|
]
|
|
21375
21515
|
},
|
|
@@ -21624,6 +21764,201 @@ export const introspectionData = [
|
|
|
21624
21764
|
}
|
|
21625
21765
|
]
|
|
21626
21766
|
},
|
|
21767
|
+
{
|
|
21768
|
+
"id": "clients.supabase",
|
|
21769
|
+
"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).",
|
|
21770
|
+
"shortcut": "clients.supabase",
|
|
21771
|
+
"className": "SupabaseClient",
|
|
21772
|
+
"methods": {
|
|
21773
|
+
"from": {
|
|
21774
|
+
"description": "Start a query on a Postgres table or view.",
|
|
21775
|
+
"parameters": {
|
|
21776
|
+
"table": {
|
|
21777
|
+
"type": "string",
|
|
21778
|
+
"description": "The table or view name to query"
|
|
21779
|
+
}
|
|
21780
|
+
},
|
|
21781
|
+
"required": [
|
|
21782
|
+
"table"
|
|
21783
|
+
],
|
|
21784
|
+
"returns": "void"
|
|
21785
|
+
},
|
|
21786
|
+
"rpc": {
|
|
21787
|
+
"description": "Call a Postgres function (RPC).",
|
|
21788
|
+
"parameters": {
|
|
21789
|
+
"fn": {
|
|
21790
|
+
"type": "string",
|
|
21791
|
+
"description": "The function name"
|
|
21792
|
+
},
|
|
21793
|
+
"params": {
|
|
21794
|
+
"type": "Record<string, unknown>",
|
|
21795
|
+
"description": "Arguments to pass to the function"
|
|
21796
|
+
},
|
|
21797
|
+
"options": {
|
|
21798
|
+
"type": "{ head?: boolean; get?: boolean; count?: \"exact\" | \"planned\" | \"estimated\" }",
|
|
21799
|
+
"description": "Optional settings (head, get, count)"
|
|
21800
|
+
}
|
|
21801
|
+
},
|
|
21802
|
+
"required": [
|
|
21803
|
+
"fn"
|
|
21804
|
+
],
|
|
21805
|
+
"returns": "void"
|
|
21806
|
+
},
|
|
21807
|
+
"signInWithPassword": {
|
|
21808
|
+
"description": "Sign in with email and password.",
|
|
21809
|
+
"parameters": {
|
|
21810
|
+
"email": {
|
|
21811
|
+
"type": "string",
|
|
21812
|
+
"description": "Parameter email"
|
|
21813
|
+
},
|
|
21814
|
+
"password": {
|
|
21815
|
+
"type": "string",
|
|
21816
|
+
"description": "Parameter password"
|
|
21817
|
+
}
|
|
21818
|
+
},
|
|
21819
|
+
"required": [
|
|
21820
|
+
"email",
|
|
21821
|
+
"password"
|
|
21822
|
+
],
|
|
21823
|
+
"returns": "void"
|
|
21824
|
+
},
|
|
21825
|
+
"signUp": {
|
|
21826
|
+
"description": "Create a new user account with email and password.",
|
|
21827
|
+
"parameters": {
|
|
21828
|
+
"email": {
|
|
21829
|
+
"type": "string",
|
|
21830
|
+
"description": "Parameter email"
|
|
21831
|
+
},
|
|
21832
|
+
"password": {
|
|
21833
|
+
"type": "string",
|
|
21834
|
+
"description": "Parameter password"
|
|
21835
|
+
}
|
|
21836
|
+
},
|
|
21837
|
+
"required": [
|
|
21838
|
+
"email",
|
|
21839
|
+
"password"
|
|
21840
|
+
],
|
|
21841
|
+
"returns": "void"
|
|
21842
|
+
},
|
|
21843
|
+
"signOut": {
|
|
21844
|
+
"description": "Sign the current user out.",
|
|
21845
|
+
"parameters": {},
|
|
21846
|
+
"required": [],
|
|
21847
|
+
"returns": "void"
|
|
21848
|
+
},
|
|
21849
|
+
"getSession": {
|
|
21850
|
+
"description": "Get the current session, if any.",
|
|
21851
|
+
"parameters": {},
|
|
21852
|
+
"required": [],
|
|
21853
|
+
"returns": "void"
|
|
21854
|
+
},
|
|
21855
|
+
"getUser": {
|
|
21856
|
+
"description": "Get the current user, if any.",
|
|
21857
|
+
"parameters": {},
|
|
21858
|
+
"required": [],
|
|
21859
|
+
"returns": "void"
|
|
21860
|
+
},
|
|
21861
|
+
"invoke": {
|
|
21862
|
+
"description": "Invoke a Supabase Edge Function by name.",
|
|
21863
|
+
"parameters": {
|
|
21864
|
+
"name": {
|
|
21865
|
+
"type": "string",
|
|
21866
|
+
"description": "Parameter name"
|
|
21867
|
+
},
|
|
21868
|
+
"body": {
|
|
21869
|
+
"type": "any",
|
|
21870
|
+
"description": "Parameter body"
|
|
21871
|
+
}
|
|
21872
|
+
},
|
|
21873
|
+
"required": [
|
|
21874
|
+
"name"
|
|
21875
|
+
],
|
|
21876
|
+
"returns": "void"
|
|
21877
|
+
},
|
|
21878
|
+
"subscribe": {
|
|
21879
|
+
"description": "Subscribe to realtime changes on a Postgres table.",
|
|
21880
|
+
"parameters": {
|
|
21881
|
+
"channelName": {
|
|
21882
|
+
"type": "string",
|
|
21883
|
+
"description": "A name for this subscription channel"
|
|
21884
|
+
},
|
|
21885
|
+
"table": {
|
|
21886
|
+
"type": "string",
|
|
21887
|
+
"description": "The table to listen to"
|
|
21888
|
+
},
|
|
21889
|
+
"callback": {
|
|
21890
|
+
"type": "(payload: any) => void",
|
|
21891
|
+
"description": "Called with the payload on each change"
|
|
21892
|
+
},
|
|
21893
|
+
"event": {
|
|
21894
|
+
"type": "\"INSERT\" | \"UPDATE\" | \"DELETE\" | \"*\"",
|
|
21895
|
+
"description": "The event type to listen for (default: all changes)"
|
|
21896
|
+
}
|
|
21897
|
+
},
|
|
21898
|
+
"required": [
|
|
21899
|
+
"channelName",
|
|
21900
|
+
"table",
|
|
21901
|
+
"callback"
|
|
21902
|
+
],
|
|
21903
|
+
"returns": "RealtimeChannel"
|
|
21904
|
+
},
|
|
21905
|
+
"unsubscribe": {
|
|
21906
|
+
"description": "Unsubscribe and remove a realtime channel by name.",
|
|
21907
|
+
"parameters": {
|
|
21908
|
+
"channelName": {
|
|
21909
|
+
"type": "string",
|
|
21910
|
+
"description": "The channel name to remove"
|
|
21911
|
+
}
|
|
21912
|
+
},
|
|
21913
|
+
"required": [
|
|
21914
|
+
"channelName"
|
|
21915
|
+
],
|
|
21916
|
+
"returns": "void"
|
|
21917
|
+
},
|
|
21918
|
+
"unsubscribeAll": {
|
|
21919
|
+
"description": "Unsubscribe and remove all realtime channels.",
|
|
21920
|
+
"parameters": {},
|
|
21921
|
+
"required": [],
|
|
21922
|
+
"returns": "void"
|
|
21923
|
+
},
|
|
21924
|
+
"connect": {
|
|
21925
|
+
"description": "Connect is a no-op since the Supabase SDK initializes on construction. The client is ready to use immediately after creation.",
|
|
21926
|
+
"parameters": {},
|
|
21927
|
+
"required": [],
|
|
21928
|
+
"returns": "void"
|
|
21929
|
+
},
|
|
21930
|
+
"disconnect": {
|
|
21931
|
+
"description": "Disconnect by signing out and removing all realtime channels.",
|
|
21932
|
+
"parameters": {},
|
|
21933
|
+
"required": [],
|
|
21934
|
+
"returns": "void"
|
|
21935
|
+
}
|
|
21936
|
+
},
|
|
21937
|
+
"getters": {
|
|
21938
|
+
"sdk": {
|
|
21939
|
+
"description": "Returns the raw Supabase SDK client for full access to all SDK methods.",
|
|
21940
|
+
"returns": "SupabaseSDKClient<any, any>"
|
|
21941
|
+
},
|
|
21942
|
+
"storage": {
|
|
21943
|
+
"description": "Returns the Supabase Storage client for managing buckets and files.",
|
|
21944
|
+
"returns": "any"
|
|
21945
|
+
},
|
|
21946
|
+
"functions": {
|
|
21947
|
+
"description": "Returns the Supabase Functions client.",
|
|
21948
|
+
"returns": "any"
|
|
21949
|
+
}
|
|
21950
|
+
},
|
|
21951
|
+
"events": {},
|
|
21952
|
+
"state": {},
|
|
21953
|
+
"options": {},
|
|
21954
|
+
"envVars": [],
|
|
21955
|
+
"examples": [
|
|
21956
|
+
{
|
|
21957
|
+
"language": "ts",
|
|
21958
|
+
"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})"
|
|
21959
|
+
}
|
|
21960
|
+
]
|
|
21961
|
+
},
|
|
21627
21962
|
{
|
|
21628
21963
|
"id": "servers.mcp",
|
|
21629
21964
|
"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).",
|