@almadar/integrations 2.29.0 → 2.31.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.
- package/dist/{BaseIntegration-C_5q54DM.d.ts → BaseIntegration-BYlbMFlf.d.ts} +7 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +124 -32
- package/dist/index.js.map +1 -1
- package/dist/integrations/github/index.d.ts +108 -4
- package/dist/integrations/github/index.js +82 -5
- package/dist/integrations/github/index.js.map +1 -1
- package/dist/mocks/index.d.ts +1 -1
- package/dist/mocks/index.js.map +1 -1
- package/dist/runtime/index.d.ts +2 -2
- package/dist/runtime/index.js +123 -31
- package/dist/runtime/index.js.map +1 -1
- package/dist/{store-eq1-GfDi.d.ts → store-BYRZDq9B.d.ts} +393 -2
- package/package.json +5 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ServiceParamsValue, ServiceParams, EntityRow } from '@almadar/core';
|
|
2
|
-
import { f as IntegrationParamValue, g as IntegrationParams } from './BaseIntegration-
|
|
2
|
+
import { f as IntegrationParamValue, g as IntegrationParams } from './BaseIntegration-BYlbMFlf.js';
|
|
3
3
|
|
|
4
4
|
/** Scalar value admissible as a SQL bind parameter. */
|
|
5
5
|
type DatabaseQueryParamValue = string | number | boolean | Date | null;
|
|
@@ -38,49 +38,68 @@ interface DatabaseDriver {
|
|
|
38
38
|
*/
|
|
39
39
|
|
|
40
40
|
type GitHubActions = {
|
|
41
|
+
/** Clone a repository via the git CLI into a local target directory, using the configured token for auth. */
|
|
41
42
|
cloneRepo: {
|
|
42
43
|
params: {
|
|
44
|
+
/** HTTPS clone URL, e.g. https://github.com/owner/repo. Owner/repo are parsed from it when not preconfigured. */
|
|
43
45
|
repoUrl: string;
|
|
46
|
+
/** Local directory to clone into. */
|
|
44
47
|
targetDir: string;
|
|
48
|
+
/** Branch to check out after cloning; defaults to the repo's default branch. */
|
|
45
49
|
branch?: string;
|
|
46
50
|
};
|
|
47
51
|
result: {
|
|
48
52
|
message: string;
|
|
49
53
|
};
|
|
50
54
|
};
|
|
55
|
+
/** Create a new local branch via the git CLI in the configured working directory. */
|
|
51
56
|
createBranch: {
|
|
52
57
|
params: {
|
|
58
|
+
/** Name of the branch to create. */
|
|
53
59
|
branchName: string;
|
|
60
|
+
/** Branch to branch from; defaults to the current branch. */
|
|
54
61
|
baseBranch?: string;
|
|
55
62
|
};
|
|
56
63
|
result: {
|
|
57
64
|
message: string;
|
|
58
65
|
};
|
|
59
66
|
};
|
|
67
|
+
/** Commit staged (or given) changes via the git CLI in the configured working directory. */
|
|
60
68
|
commit: {
|
|
61
69
|
params: {
|
|
70
|
+
/** Commit message. */
|
|
62
71
|
message: string;
|
|
72
|
+
/** Specific files to commit; when omitted, all changes are committed. */
|
|
63
73
|
files?: string[];
|
|
64
74
|
};
|
|
65
75
|
result: {
|
|
66
76
|
message: string;
|
|
67
77
|
};
|
|
68
78
|
};
|
|
79
|
+
/** Push a local branch to the remote via the git CLI, using the configured token for auth. */
|
|
69
80
|
push: {
|
|
70
81
|
params: {
|
|
82
|
+
/** Branch name to push. */
|
|
71
83
|
branchName: string;
|
|
84
|
+
/** Force-push (overwrites remote history); never set true in an agent context. */
|
|
72
85
|
force?: boolean;
|
|
73
86
|
};
|
|
74
87
|
result: {
|
|
75
88
|
message: string;
|
|
76
89
|
};
|
|
77
90
|
};
|
|
91
|
+
/** Open a pull request via the GitHub REST API. */
|
|
78
92
|
createPR: {
|
|
79
93
|
params: {
|
|
94
|
+
/** Pull request title. */
|
|
80
95
|
title: string;
|
|
96
|
+
/** Pull request description body. */
|
|
81
97
|
body: string;
|
|
98
|
+
/** Branch the PR merges into, e.g. main. */
|
|
82
99
|
baseBranch: string;
|
|
100
|
+
/** Branch the PR merges from (the feature branch). */
|
|
83
101
|
headBranch: string;
|
|
102
|
+
/** Open as a draft PR instead of ready-for-review. */
|
|
84
103
|
draft?: boolean;
|
|
85
104
|
};
|
|
86
105
|
result: {
|
|
@@ -89,8 +108,10 @@ type GitHubActions = {
|
|
|
89
108
|
title: string;
|
|
90
109
|
};
|
|
91
110
|
};
|
|
111
|
+
/** List review comments on a pull request via the GitHub REST API. */
|
|
92
112
|
getPRComments: {
|
|
93
113
|
params: {
|
|
114
|
+
/** Pull request number. */
|
|
94
115
|
prNumber: number;
|
|
95
116
|
};
|
|
96
117
|
result: {
|
|
@@ -101,10 +122,14 @@ type GitHubActions = {
|
|
|
101
122
|
}>;
|
|
102
123
|
};
|
|
103
124
|
};
|
|
125
|
+
/** List issues on the configured repository via the GitHub REST API. */
|
|
104
126
|
listIssues: {
|
|
105
127
|
params: {
|
|
128
|
+
/** Issue state filter: 'open', 'closed', or 'all'; defaults to open. */
|
|
106
129
|
state?: string;
|
|
130
|
+
/** Only issues carrying all of these labels. */
|
|
107
131
|
labels?: string[];
|
|
132
|
+
/** Page size for the GitHub API request. */
|
|
108
133
|
per_page?: number;
|
|
109
134
|
};
|
|
110
135
|
result: {
|
|
@@ -115,8 +140,10 @@ type GitHubActions = {
|
|
|
115
140
|
}>;
|
|
116
141
|
};
|
|
117
142
|
};
|
|
143
|
+
/** Fetch a single issue's details via the GitHub REST API. */
|
|
118
144
|
getIssue: {
|
|
119
145
|
params: {
|
|
146
|
+
/** Issue number. */
|
|
120
147
|
issueNumber: number;
|
|
121
148
|
};
|
|
122
149
|
result: {
|
|
@@ -126,11 +153,16 @@ type GitHubActions = {
|
|
|
126
153
|
state: string;
|
|
127
154
|
};
|
|
128
155
|
};
|
|
156
|
+
/** Read a file's content from a repository at a given ref (declared intent — dispatch is being wired). */
|
|
129
157
|
getFile: {
|
|
130
158
|
params: {
|
|
159
|
+
/** Repository owner (user or org). */
|
|
131
160
|
owner: string;
|
|
161
|
+
/** Repository name. */
|
|
132
162
|
repo: string;
|
|
163
|
+
/** File path within the repository. */
|
|
133
164
|
path: string;
|
|
165
|
+
/** Branch, tag, or commit SHA to read from; defaults to the default branch. */
|
|
134
166
|
ref?: string;
|
|
135
167
|
};
|
|
136
168
|
result: {
|
|
@@ -140,12 +172,18 @@ type GitHubActions = {
|
|
|
140
172
|
size: number;
|
|
141
173
|
};
|
|
142
174
|
};
|
|
175
|
+
/** List commits on a repository, optionally filtered by file path (declared intent — dispatch is being wired). */
|
|
143
176
|
listCommits: {
|
|
144
177
|
params: {
|
|
178
|
+
/** Repository owner (user or org). */
|
|
145
179
|
owner: string;
|
|
180
|
+
/** Repository name. */
|
|
146
181
|
repo: string;
|
|
182
|
+
/** Only commits touching this file path. */
|
|
147
183
|
path?: string;
|
|
184
|
+
/** Branch, tag, or commit SHA to start from; defaults to the default branch. */
|
|
148
185
|
ref?: string;
|
|
186
|
+
/** Page size for the GitHub API request. */
|
|
149
187
|
per_page?: number;
|
|
150
188
|
};
|
|
151
189
|
result: {
|
|
@@ -157,12 +195,18 @@ type GitHubActions = {
|
|
|
157
195
|
}>;
|
|
158
196
|
};
|
|
159
197
|
};
|
|
198
|
+
/** Open a new issue on a repository (declared intent — dispatch is being wired). */
|
|
160
199
|
createIssue: {
|
|
161
200
|
params: {
|
|
201
|
+
/** Repository owner (user or org). */
|
|
162
202
|
owner: string;
|
|
203
|
+
/** Repository name. */
|
|
163
204
|
repo: string;
|
|
205
|
+
/** Issue title. */
|
|
164
206
|
title: string;
|
|
207
|
+
/** Issue body/description. */
|
|
165
208
|
body?: string;
|
|
209
|
+
/** Labels to apply to the new issue. */
|
|
166
210
|
labels?: string[];
|
|
167
211
|
};
|
|
168
212
|
result: {
|
|
@@ -173,10 +217,17 @@ type GitHubActions = {
|
|
|
173
217
|
};
|
|
174
218
|
};
|
|
175
219
|
type StripeActions = {
|
|
220
|
+
/**
|
|
221
|
+
* Create a Stripe PaymentIntent for a one-off charge.
|
|
222
|
+
* @synonyms charge, pay
|
|
223
|
+
*/
|
|
176
224
|
createPaymentIntent: {
|
|
177
225
|
params: {
|
|
226
|
+
/** Charge amount in the currency's smallest unit (e.g. cents for USD). */
|
|
178
227
|
amount: number;
|
|
228
|
+
/** ISO 4217 currency code, e.g. usd. */
|
|
179
229
|
currency: string;
|
|
230
|
+
/** Arbitrary key-value tags attached to the PaymentIntent (string values only). */
|
|
180
231
|
metadata?: Record<string, string>;
|
|
181
232
|
};
|
|
182
233
|
result: {
|
|
@@ -187,8 +238,10 @@ type StripeActions = {
|
|
|
187
238
|
currency: string;
|
|
188
239
|
};
|
|
189
240
|
};
|
|
241
|
+
/** Confirm a previously created PaymentIntent, attempting to complete the charge. */
|
|
190
242
|
confirmPayment: {
|
|
191
243
|
params: {
|
|
244
|
+
/** The PaymentIntent id returned by createPaymentIntent. */
|
|
192
245
|
paymentIntentId: string;
|
|
193
246
|
};
|
|
194
247
|
result: {
|
|
@@ -196,9 +249,12 @@ type StripeActions = {
|
|
|
196
249
|
status: string;
|
|
197
250
|
};
|
|
198
251
|
};
|
|
252
|
+
/** Refund a charged PaymentIntent, in full or in part. */
|
|
199
253
|
refund: {
|
|
200
254
|
params: {
|
|
255
|
+
/** The PaymentIntent id to refund. */
|
|
201
256
|
paymentIntentId: string;
|
|
257
|
+
/** Amount to refund in the currency's smallest unit; omit for a full refund. */
|
|
202
258
|
amount?: number;
|
|
203
259
|
};
|
|
204
260
|
result: {
|
|
@@ -209,12 +265,18 @@ type StripeActions = {
|
|
|
209
265
|
};
|
|
210
266
|
};
|
|
211
267
|
type LLMIntegrationActions = {
|
|
268
|
+
/** Generate free-form text from a prompt via the configured LLM provider (default 'You are a helpful assistant.' system prompt). */
|
|
212
269
|
generate: {
|
|
213
270
|
params: {
|
|
271
|
+
/** The user/task prompt sent to the model. */
|
|
214
272
|
userPrompt: string;
|
|
273
|
+
/** System prompt steering the model's behavior; defaults to a generic assistant prompt. */
|
|
215
274
|
systemPrompt?: string;
|
|
275
|
+
/** Model id override; when set, a fresh client is built for this call instead of the shared one. */
|
|
216
276
|
model?: string;
|
|
277
|
+
/** Sampling temperature (0-1ish, provider-dependent); higher is more random. */
|
|
217
278
|
temperature?: number;
|
|
279
|
+
/** Maximum tokens to generate; defaults to 1024. */
|
|
218
280
|
maxTokens?: number;
|
|
219
281
|
};
|
|
220
282
|
result: {
|
|
@@ -227,10 +289,14 @@ type LLMIntegrationActions = {
|
|
|
227
289
|
};
|
|
228
290
|
};
|
|
229
291
|
};
|
|
292
|
+
/** Classify text into exactly one of a caller-supplied category list, with a confidence score and reasoning. */
|
|
230
293
|
classify: {
|
|
231
294
|
params: {
|
|
295
|
+
/** Text to classify. */
|
|
232
296
|
text: string;
|
|
297
|
+
/** Closed set of category labels the model must choose from. */
|
|
233
298
|
categories: string[];
|
|
299
|
+
/** Model id override. */
|
|
234
300
|
model?: string;
|
|
235
301
|
};
|
|
236
302
|
result: {
|
|
@@ -239,19 +305,28 @@ type LLMIntegrationActions = {
|
|
|
239
305
|
reasoning: string;
|
|
240
306
|
};
|
|
241
307
|
};
|
|
308
|
+
/** Extract structured data from text according to a JSON-schema-shaped description; returned data is not validated against the schema. */
|
|
242
309
|
extract: {
|
|
243
310
|
params: {
|
|
311
|
+
/** Source text to extract data from. */
|
|
244
312
|
text: string;
|
|
313
|
+
/** JSON-schema-like description of the fields to extract; passed to the model as a prompt, not enforced structurally. */
|
|
245
314
|
schema: IntegrationParams;
|
|
315
|
+
/** Model id override. */
|
|
246
316
|
model?: string;
|
|
247
317
|
};
|
|
248
318
|
result: IntegrationParams;
|
|
249
319
|
};
|
|
320
|
+
/** Summarize text, optionally constrained by length and style, returning a summary plus key points. */
|
|
250
321
|
summarize: {
|
|
251
322
|
params: {
|
|
323
|
+
/** Text to summarize. */
|
|
252
324
|
text: string;
|
|
325
|
+
/** Target maximum summary length in words. */
|
|
253
326
|
maxLength?: number;
|
|
327
|
+
/** Summary style: 'bullet' for bullet points, 'detailed' for thorough, otherwise concise. */
|
|
254
328
|
style?: string;
|
|
329
|
+
/** Model id override. */
|
|
255
330
|
model?: string;
|
|
256
331
|
};
|
|
257
332
|
result: {
|
|
@@ -259,9 +334,12 @@ type LLMIntegrationActions = {
|
|
|
259
334
|
keyPoints: string[];
|
|
260
335
|
};
|
|
261
336
|
};
|
|
337
|
+
/** Generate embedding vectors for an array of texts via the configured embedding model (default baai/bge-base-en-v1.5 on OpenRouter, independent of the chat provider). */
|
|
262
338
|
embed: {
|
|
263
339
|
params: {
|
|
340
|
+
/** Texts to embed, one vector per entry, in order. */
|
|
264
341
|
texts: string[];
|
|
342
|
+
/** Embedding model id override. */
|
|
265
343
|
model?: string;
|
|
266
344
|
};
|
|
267
345
|
result: {
|
|
@@ -270,9 +348,12 @@ type LLMIntegrationActions = {
|
|
|
270
348
|
};
|
|
271
349
|
};
|
|
272
350
|
type MLActions = {
|
|
351
|
+
/** Run inference against a deployed model-serving orbital by posting an INFER event and reading the prediction back out of the emitted INFERRED result; may cold-start (up to 60s default timeout). */
|
|
273
352
|
infer: {
|
|
274
353
|
params: {
|
|
354
|
+
/** Checkpoint or model identifier the serving orbital resolves. */
|
|
275
355
|
model: string;
|
|
356
|
+
/** JSON-safe model input payload. */
|
|
276
357
|
input: ServiceParamsValue;
|
|
277
358
|
};
|
|
278
359
|
result: {
|
|
@@ -283,10 +364,14 @@ type MLActions = {
|
|
|
283
364
|
};
|
|
284
365
|
};
|
|
285
366
|
type YouTubeActions = {
|
|
367
|
+
/** Search YouTube via the Data API and return matching video snippets. */
|
|
286
368
|
search: {
|
|
287
369
|
params: {
|
|
370
|
+
/** Search query text. */
|
|
288
371
|
query: string;
|
|
372
|
+
/** Maximum number of results; defaults to 10. */
|
|
289
373
|
maxResults?: number;
|
|
374
|
+
/** Resource type filter passed to the Data API (e.g. 'video', 'channel', 'playlist'). */
|
|
290
375
|
type?: string;
|
|
291
376
|
};
|
|
292
377
|
result: Array<{
|
|
@@ -296,8 +381,10 @@ type YouTubeActions = {
|
|
|
296
381
|
description: string;
|
|
297
382
|
}>;
|
|
298
383
|
};
|
|
384
|
+
/** Fetch a video's snippet and statistics via the YouTube Data API. */
|
|
299
385
|
getVideo: {
|
|
300
386
|
params: {
|
|
387
|
+
/** YouTube video id. */
|
|
301
388
|
videoId: string;
|
|
302
389
|
};
|
|
303
390
|
result: {
|
|
@@ -307,8 +394,10 @@ type YouTubeActions = {
|
|
|
307
394
|
likeCount: string;
|
|
308
395
|
};
|
|
309
396
|
};
|
|
397
|
+
/** Fetch a channel's snippet and statistics via the YouTube Data API. */
|
|
310
398
|
getChannel: {
|
|
311
399
|
params: {
|
|
400
|
+
/** YouTube channel id. */
|
|
312
401
|
channelId: string;
|
|
313
402
|
};
|
|
314
403
|
result: {
|
|
@@ -319,10 +408,17 @@ type YouTubeActions = {
|
|
|
319
408
|
};
|
|
320
409
|
};
|
|
321
410
|
type TwilioActions = {
|
|
411
|
+
/**
|
|
412
|
+
* Send an SMS message via Twilio.
|
|
413
|
+
* @synonyms text message, text
|
|
414
|
+
*/
|
|
322
415
|
sendSMS: {
|
|
323
416
|
params: {
|
|
417
|
+
/** Destination phone number, E.164 format. */
|
|
324
418
|
to: string;
|
|
419
|
+
/** Message text. */
|
|
325
420
|
body: string;
|
|
421
|
+
/** Sender phone number; defaults to TWILIO_PHONE_NUMBER. */
|
|
326
422
|
from?: string;
|
|
327
423
|
};
|
|
328
424
|
result: {
|
|
@@ -330,9 +426,12 @@ type TwilioActions = {
|
|
|
330
426
|
status: string;
|
|
331
427
|
};
|
|
332
428
|
};
|
|
429
|
+
/** Send a WhatsApp message via Twilio, using the configured phone number as sender on both ends. */
|
|
333
430
|
sendWhatsApp: {
|
|
334
431
|
params: {
|
|
432
|
+
/** Destination phone number, E.164 format (sent as whatsapp:number). */
|
|
335
433
|
to: string;
|
|
434
|
+
/** Message text. */
|
|
336
435
|
body: string;
|
|
337
436
|
};
|
|
338
437
|
result: {
|
|
@@ -342,14 +441,20 @@ type TwilioActions = {
|
|
|
342
441
|
};
|
|
343
442
|
};
|
|
344
443
|
type EmailActions = {
|
|
444
|
+
/** Send a transactional email via the configured provider (SendGrid or Resend). */
|
|
345
445
|
send: {
|
|
346
446
|
params: {
|
|
447
|
+
/** Recipient email address. */
|
|
347
448
|
to: string;
|
|
449
|
+
/** Email subject line. */
|
|
348
450
|
subject: string;
|
|
451
|
+
/** Plain-text (or HTML, if `htmlBody` is absent) body content. */
|
|
349
452
|
body: string;
|
|
453
|
+
/** Sender address; defaults to FROM_EMAIL. */
|
|
350
454
|
from?: string;
|
|
351
455
|
/** HTML content; when present `body` becomes the plain-text alternative. */
|
|
352
456
|
htmlBody?: string;
|
|
457
|
+
/** Reply-To address. */
|
|
353
458
|
replyTo?: string;
|
|
354
459
|
/** Provider template reference (SendGrid dynamic templates; Resend rejects it loudly). */
|
|
355
460
|
templateId?: string;
|
|
@@ -361,11 +466,16 @@ type EmailActions = {
|
|
|
361
466
|
};
|
|
362
467
|
};
|
|
363
468
|
type WebhookActions = {
|
|
469
|
+
/** POST a JSON event notification to an external URL, HMAC-SHA256-signed when a secret is configured; 5xx responses retry, 4xx do not. */
|
|
364
470
|
send: {
|
|
365
471
|
params: {
|
|
472
|
+
/** Destination URL to POST to. */
|
|
366
473
|
url: string;
|
|
474
|
+
/** Event name, carried in the body and the X-Almadar-Event header. */
|
|
367
475
|
event: string;
|
|
476
|
+
/** Event payload; defaults to an empty object. */
|
|
368
477
|
payload?: Record<string, string>;
|
|
478
|
+
/** Per-call HMAC signing secret, overriding WEBHOOK_SIGNING_SECRET. */
|
|
369
479
|
secret?: string;
|
|
370
480
|
};
|
|
371
481
|
result: {
|
|
@@ -376,8 +486,10 @@ type WebhookActions = {
|
|
|
376
486
|
};
|
|
377
487
|
};
|
|
378
488
|
type PushActions = {
|
|
489
|
+
/** Send a VAPID-signed Web Push notification to a browser PushSubscription endpoint. */
|
|
379
490
|
send: {
|
|
380
491
|
params: {
|
|
492
|
+
/** Browser PushSubscription: endpoint URL plus the p256dh/auth encryption keys. */
|
|
381
493
|
subscription: {
|
|
382
494
|
endpoint: string;
|
|
383
495
|
keys: {
|
|
@@ -385,25 +497,36 @@ type PushActions = {
|
|
|
385
497
|
auth: string;
|
|
386
498
|
};
|
|
387
499
|
};
|
|
500
|
+
/** Notification title. */
|
|
388
501
|
title: string;
|
|
502
|
+
/** Notification body text. */
|
|
389
503
|
body: string;
|
|
504
|
+
/** URL to open when the notification is clicked. */
|
|
390
505
|
url?: string;
|
|
506
|
+
/** Notification icon URL. */
|
|
391
507
|
icon?: string;
|
|
392
508
|
};
|
|
393
509
|
result: {
|
|
394
510
|
statusCode: number;
|
|
395
511
|
ok: boolean;
|
|
512
|
+
/** True on a 404/410 push-service response — the subscription is gone and must be pruned, never retried. */
|
|
396
513
|
expired: boolean;
|
|
397
514
|
};
|
|
398
515
|
};
|
|
399
516
|
};
|
|
400
517
|
type CalendarActions = {
|
|
518
|
+
/** List events on a Google Calendar; pass `syncToken` for incremental sync instead of a time window (the API rejects combining them). */
|
|
401
519
|
listEvents: {
|
|
402
520
|
params: {
|
|
521
|
+
/** Calendar id; defaults to GOOGLE_CALENDAR_ID (or 'primary'). */
|
|
403
522
|
calendarId?: string;
|
|
523
|
+
/** ISO start of the time window (ignored when `syncToken` is set). */
|
|
404
524
|
timeMin?: string;
|
|
525
|
+
/** ISO end of the time window (ignored when `syncToken` is set). */
|
|
405
526
|
timeMax?: string;
|
|
527
|
+
/** Incremental-sync token from a previous call's `nextSyncToken`; supersedes timeMin/timeMax. */
|
|
406
528
|
syncToken?: string;
|
|
529
|
+
/** Maximum events to return; defaults to 250. */
|
|
407
530
|
maxResults?: number;
|
|
408
531
|
};
|
|
409
532
|
result: {
|
|
@@ -417,17 +540,26 @@ type CalendarActions = {
|
|
|
417
540
|
status: string;
|
|
418
541
|
updated: string;
|
|
419
542
|
}>;
|
|
543
|
+
/** Token to pass as `syncToken` on the next call; null when incremental sync isn't available for this response. */
|
|
420
544
|
nextSyncToken: string | null;
|
|
421
545
|
};
|
|
422
546
|
};
|
|
547
|
+
/** Create a calendar event; an all-day event uses a 10-char (YYYY-MM-DD) start with no `end`/`durationMinutes`, defaulting to the next day. */
|
|
423
548
|
createEvent: {
|
|
424
549
|
params: {
|
|
550
|
+
/** Calendar id; defaults to GOOGLE_CALENDAR_ID. */
|
|
425
551
|
calendarId?: string;
|
|
552
|
+
/** Event title. */
|
|
426
553
|
summary: string;
|
|
554
|
+
/** Event description. */
|
|
427
555
|
description?: string;
|
|
556
|
+
/** Event location text. */
|
|
428
557
|
location?: string;
|
|
558
|
+
/** ISO start (10 chars = all-day date, longer = dateTime). */
|
|
429
559
|
start: string;
|
|
560
|
+
/** ISO end; if omitted, derived from `durationMinutes` or the all-day next-day convention. */
|
|
430
561
|
end?: string;
|
|
562
|
+
/** Duration in minutes used to derive `end` when `end` is omitted (non-all-day events only). */
|
|
431
563
|
durationMinutes?: number;
|
|
432
564
|
};
|
|
433
565
|
result: {
|
|
@@ -436,14 +568,22 @@ type CalendarActions = {
|
|
|
436
568
|
htmlLink: string;
|
|
437
569
|
};
|
|
438
570
|
};
|
|
571
|
+
/** Patch an existing event's fields; only fields present in params are changed. */
|
|
439
572
|
updateEvent: {
|
|
440
573
|
params: {
|
|
574
|
+
/** Calendar id; defaults to GOOGLE_CALENDAR_ID. */
|
|
441
575
|
calendarId?: string;
|
|
576
|
+
/** Id of the event to update. */
|
|
442
577
|
eventId: string;
|
|
578
|
+
/** New event title. */
|
|
443
579
|
summary?: string;
|
|
580
|
+
/** New event description. */
|
|
444
581
|
description?: string;
|
|
582
|
+
/** New event location text. */
|
|
445
583
|
location?: string;
|
|
584
|
+
/** New ISO start. */
|
|
446
585
|
start?: string;
|
|
586
|
+
/** New ISO end. */
|
|
447
587
|
end?: string;
|
|
448
588
|
};
|
|
449
589
|
result: {
|
|
@@ -451,9 +591,12 @@ type CalendarActions = {
|
|
|
451
591
|
status: string;
|
|
452
592
|
};
|
|
453
593
|
};
|
|
594
|
+
/** Delete a calendar event. */
|
|
454
595
|
deleteEvent: {
|
|
455
596
|
params: {
|
|
597
|
+
/** Calendar id; defaults to GOOGLE_CALENDAR_ID. */
|
|
456
598
|
calendarId?: string;
|
|
599
|
+
/** Id of the event to delete. */
|
|
457
600
|
eventId: string;
|
|
458
601
|
};
|
|
459
602
|
result: {
|
|
@@ -461,10 +604,14 @@ type CalendarActions = {
|
|
|
461
604
|
deleted: boolean;
|
|
462
605
|
};
|
|
463
606
|
};
|
|
607
|
+
/** Query busy time blocks on a calendar within a window. */
|
|
464
608
|
freeBusy: {
|
|
465
609
|
params: {
|
|
610
|
+
/** Calendar id; defaults to GOOGLE_CALENDAR_ID. */
|
|
466
611
|
calendarId?: string;
|
|
612
|
+
/** ISO start of the query window. */
|
|
467
613
|
timeMin: string;
|
|
614
|
+
/** ISO end of the query window. */
|
|
468
615
|
timeMax: string;
|
|
469
616
|
};
|
|
470
617
|
result: {
|
|
@@ -474,11 +621,16 @@ type CalendarActions = {
|
|
|
474
621
|
}>;
|
|
475
622
|
};
|
|
476
623
|
};
|
|
624
|
+
/** Register a push-notification channel for calendar change events (Google Calendar API watch). */
|
|
477
625
|
watch: {
|
|
478
626
|
params: {
|
|
627
|
+
/** Calendar id; defaults to GOOGLE_CALENDAR_ID. */
|
|
479
628
|
calendarId?: string;
|
|
629
|
+
/** Caller-chosen id identifying this notification channel. */
|
|
480
630
|
channelId: string;
|
|
631
|
+
/** HTTPS callback URL Google POSTs change notifications to. */
|
|
481
632
|
address: string;
|
|
633
|
+
/** Requested channel time-to-live in seconds. */
|
|
482
634
|
ttlSeconds?: number;
|
|
483
635
|
};
|
|
484
636
|
result: {
|
|
@@ -487,9 +639,12 @@ type CalendarActions = {
|
|
|
487
639
|
expiration: string;
|
|
488
640
|
};
|
|
489
641
|
};
|
|
642
|
+
/** Stop an active watch channel, ending calendar change notifications. */
|
|
490
643
|
stopWatch: {
|
|
491
644
|
params: {
|
|
645
|
+
/** The channel id from the corresponding `watch` call. */
|
|
492
646
|
channelId: string;
|
|
647
|
+
/** The resourceId returned by the corresponding `watch` call. */
|
|
493
648
|
resourceId: string;
|
|
494
649
|
};
|
|
495
650
|
result: {
|
|
@@ -498,10 +653,14 @@ type CalendarActions = {
|
|
|
498
653
|
};
|
|
499
654
|
};
|
|
500
655
|
type DriveActions = {
|
|
656
|
+
/** List non-trashed files in a Google Drive folder, optionally filtered by a Drive API query clause. */
|
|
501
657
|
listFiles: {
|
|
502
658
|
params: {
|
|
659
|
+
/** Restrict to files whose parents include this folder id. */
|
|
503
660
|
folderId?: string;
|
|
661
|
+
/** Extra Drive API query clause, ANDed with the folder/trashed filters. */
|
|
504
662
|
query?: string;
|
|
663
|
+
/** Maximum files to return; defaults to 100. */
|
|
505
664
|
maxResults?: number;
|
|
506
665
|
};
|
|
507
666
|
result: {
|
|
@@ -515,8 +674,10 @@ type DriveActions = {
|
|
|
515
674
|
}>;
|
|
516
675
|
};
|
|
517
676
|
};
|
|
677
|
+
/** Download a file's content, base64-encoded. */
|
|
518
678
|
getFile: {
|
|
519
679
|
params: {
|
|
680
|
+
/** Drive file id. */
|
|
520
681
|
fileId: string;
|
|
521
682
|
};
|
|
522
683
|
result: {
|
|
@@ -527,11 +688,19 @@ type DriveActions = {
|
|
|
527
688
|
size: number;
|
|
528
689
|
};
|
|
529
690
|
};
|
|
691
|
+
/**
|
|
692
|
+
* Upload a file to Drive; writes go through the user OAuth client when configured (service-account uploads have no storage quota on personal accounts).
|
|
693
|
+
* @synonyms upload file
|
|
694
|
+
*/
|
|
530
695
|
uploadFile: {
|
|
531
696
|
params: {
|
|
697
|
+
/** File name to create. */
|
|
532
698
|
name: string;
|
|
699
|
+
/** File content as a base64 data URL (data:mime;base64,...) or raw base64/plain text. */
|
|
533
700
|
content: string;
|
|
701
|
+
/** MIME type; inferred from a data URL when omitted. */
|
|
534
702
|
mimeType?: string;
|
|
703
|
+
/** Parent folder id; defaults to GOOGLE_DRIVE_FOLDER_ID. */
|
|
535
704
|
folderId?: string;
|
|
536
705
|
};
|
|
537
706
|
result: {
|
|
@@ -540,9 +709,12 @@ type DriveActions = {
|
|
|
540
709
|
webViewLink: string;
|
|
541
710
|
};
|
|
542
711
|
};
|
|
712
|
+
/** Create a new Drive folder. */
|
|
543
713
|
createFolder: {
|
|
544
714
|
params: {
|
|
715
|
+
/** Folder name to create. */
|
|
545
716
|
name: string;
|
|
717
|
+
/** Parent folder id; defaults to GOOGLE_DRIVE_FOLDER_ID. */
|
|
546
718
|
parentId?: string;
|
|
547
719
|
};
|
|
548
720
|
result: {
|
|
@@ -550,10 +722,14 @@ type DriveActions = {
|
|
|
550
722
|
name: string;
|
|
551
723
|
};
|
|
552
724
|
};
|
|
725
|
+
/** Grant a user permission on a Drive file. */
|
|
553
726
|
shareFile: {
|
|
554
727
|
params: {
|
|
728
|
+
/** Drive file id. */
|
|
555
729
|
fileId: string;
|
|
730
|
+
/** Email address of the grantee. */
|
|
556
731
|
email: string;
|
|
732
|
+
/** Permission level; defaults to 'reader'. */
|
|
557
733
|
role?: 'reader' | 'writer' | 'commenter';
|
|
558
734
|
};
|
|
559
735
|
result: {
|
|
@@ -563,12 +739,15 @@ type DriveActions = {
|
|
|
563
739
|
};
|
|
564
740
|
};
|
|
565
741
|
type MetaAdsActions = {
|
|
742
|
+
/** Fetch total ad spend, impressions, and clicks for an account over a date range via the Meta Graph API Marketing Insights endpoint (read-only). */
|
|
566
743
|
getSpend: {
|
|
567
744
|
params: {
|
|
745
|
+
/** Ad account id (with or without the `act_` prefix); defaults to META_AD_ACCOUNT_ID. */
|
|
568
746
|
accountId?: string;
|
|
747
|
+
/** Range start date (YYYY-MM-DD). */
|
|
569
748
|
since: string;
|
|
749
|
+
/** Range end date (YYYY-MM-DD). */
|
|
570
750
|
until: string;
|
|
571
|
-
clientTag?: string;
|
|
572
751
|
};
|
|
573
752
|
result: {
|
|
574
753
|
spend: number;
|
|
@@ -577,9 +756,12 @@ type MetaAdsActions = {
|
|
|
577
756
|
clicks: number;
|
|
578
757
|
};
|
|
579
758
|
};
|
|
759
|
+
/** List campaigns on an ad account via the Meta Graph API (read-only); dailyBudget is converted from Meta's minor-unit reporting. */
|
|
580
760
|
listCampaigns: {
|
|
581
761
|
params: {
|
|
762
|
+
/** Ad account id (with or without the `act_` prefix); defaults to META_AD_ACCOUNT_ID. */
|
|
582
763
|
accountId?: string;
|
|
764
|
+
/** Filter by campaign effective_status (e.g. 'ACTIVE', 'PAUSED'). */
|
|
583
765
|
status?: string;
|
|
584
766
|
};
|
|
585
767
|
result: {
|
|
@@ -593,8 +775,10 @@ type MetaAdsActions = {
|
|
|
593
775
|
};
|
|
594
776
|
};
|
|
595
777
|
type AccountingActions = {
|
|
778
|
+
/** Shape invoice rows into an import-ready CSV export (no accounting-vendor connection — generic column set). */
|
|
596
779
|
exportInvoices: {
|
|
597
780
|
params: {
|
|
781
|
+
/** Invoice rows to export, in column order id/number/customer/issuedAt/dueAt/currency/net/tax/gross/status. */
|
|
598
782
|
invoices: Array<{
|
|
599
783
|
id: string;
|
|
600
784
|
number: string;
|
|
@@ -607,6 +791,7 @@ type AccountingActions = {
|
|
|
607
791
|
gross: number;
|
|
608
792
|
status: string;
|
|
609
793
|
}>;
|
|
794
|
+
/** Export format; only 'csv' is currently supported. */
|
|
610
795
|
format?: 'csv';
|
|
611
796
|
};
|
|
612
797
|
result: {
|
|
@@ -615,8 +800,10 @@ type AccountingActions = {
|
|
|
615
800
|
count: number;
|
|
616
801
|
};
|
|
617
802
|
};
|
|
803
|
+
/** Shape journal entry rows into an import-ready CSV export. */
|
|
618
804
|
exportJournal: {
|
|
619
805
|
params: {
|
|
806
|
+
/** Journal entry rows to export, in column order date/account/description/debit/credit/reference. */
|
|
620
807
|
entries: Array<{
|
|
621
808
|
date: string;
|
|
622
809
|
account: string;
|
|
@@ -625,6 +812,7 @@ type AccountingActions = {
|
|
|
625
812
|
credit: number;
|
|
626
813
|
reference: string;
|
|
627
814
|
}>;
|
|
815
|
+
/** Export format; only 'csv' is currently supported. */
|
|
628
816
|
format?: 'csv';
|
|
629
817
|
};
|
|
630
818
|
result: {
|
|
@@ -635,10 +823,14 @@ type AccountingActions = {
|
|
|
635
823
|
};
|
|
636
824
|
};
|
|
637
825
|
type BankingActions = {
|
|
826
|
+
/** Start a GoCardless Bank Account Data requisition (bank-connection consent flow); the returned `link` is where the end user authorizes access. */
|
|
638
827
|
createRequisition: {
|
|
639
828
|
params: {
|
|
829
|
+
/** GoCardless institution id (the bank to connect). */
|
|
640
830
|
institutionId: string;
|
|
831
|
+
/** URL GoCardless redirects the user to after consent. */
|
|
641
832
|
redirectUrl: string;
|
|
833
|
+
/** Caller-chosen reference to correlate the requisition. */
|
|
642
834
|
reference?: string;
|
|
643
835
|
};
|
|
644
836
|
result: {
|
|
@@ -646,18 +838,24 @@ type BankingActions = {
|
|
|
646
838
|
link: string;
|
|
647
839
|
};
|
|
648
840
|
};
|
|
841
|
+
/** List account ids linked under a completed requisition. */
|
|
649
842
|
listAccounts: {
|
|
650
843
|
params: {
|
|
844
|
+
/** Requisition id from createRequisition. */
|
|
651
845
|
requisitionId: string;
|
|
652
846
|
};
|
|
653
847
|
result: {
|
|
654
848
|
accounts: string[];
|
|
655
849
|
};
|
|
656
850
|
};
|
|
851
|
+
/** List booked transactions on a linked bank account, optionally filtered by date range. */
|
|
657
852
|
listTransactions: {
|
|
658
853
|
params: {
|
|
854
|
+
/** GoCardless account id. */
|
|
659
855
|
accountId: string;
|
|
856
|
+
/** Only transactions booked on/after this date (YYYY-MM-DD). */
|
|
660
857
|
dateFrom?: string;
|
|
858
|
+
/** Only transactions booked on/before this date (YYYY-MM-DD). */
|
|
661
859
|
dateTo?: string;
|
|
662
860
|
};
|
|
663
861
|
result: {
|
|
@@ -673,12 +871,18 @@ type BankingActions = {
|
|
|
673
871
|
};
|
|
674
872
|
};
|
|
675
873
|
type EsignActions = {
|
|
874
|
+
/** Send a document for e-signature via DocuSign; accepts the document content as a data URL or raw base64. */
|
|
676
875
|
sendEnvelope: {
|
|
677
876
|
params: {
|
|
877
|
+
/** Signer's email address. */
|
|
678
878
|
recipientEmail: string;
|
|
879
|
+
/** Signer's display name. */
|
|
679
880
|
recipientName: string;
|
|
881
|
+
/** Document file name (its extension also picks the DocuSign fileExtension). */
|
|
680
882
|
documentName: string;
|
|
883
|
+
/** Document content as a base64 data URL or raw base64. */
|
|
681
884
|
documentContent: string;
|
|
885
|
+
/** Envelope email subject; defaults to "Please sign: " + documentName. */
|
|
682
886
|
emailSubject?: string;
|
|
683
887
|
};
|
|
684
888
|
result: {
|
|
@@ -686,8 +890,10 @@ type EsignActions = {
|
|
|
686
890
|
status: string;
|
|
687
891
|
};
|
|
688
892
|
};
|
|
893
|
+
/** Poll a DocuSign envelope's signing status. */
|
|
689
894
|
getEnvelopeStatus: {
|
|
690
895
|
params: {
|
|
896
|
+
/** DocuSign envelope id from sendEnvelope. */
|
|
691
897
|
envelopeId: string;
|
|
692
898
|
};
|
|
693
899
|
result: {
|
|
@@ -695,8 +901,10 @@ type EsignActions = {
|
|
|
695
901
|
completedAt: string;
|
|
696
902
|
};
|
|
697
903
|
};
|
|
904
|
+
/** Download the combined signed document(s) for a completed envelope, base64-encoded PDF. */
|
|
698
905
|
downloadDocument: {
|
|
699
906
|
params: {
|
|
907
|
+
/** DocuSign envelope id. */
|
|
700
908
|
envelopeId: string;
|
|
701
909
|
};
|
|
702
910
|
result: {
|
|
@@ -706,11 +914,16 @@ type EsignActions = {
|
|
|
706
914
|
};
|
|
707
915
|
};
|
|
708
916
|
type DockerActions = {
|
|
917
|
+
/** Simulate building a container image (in-memory backend — no real Docker daemon/SDK; a real build is not yet implemented). */
|
|
709
918
|
build: {
|
|
710
919
|
params: {
|
|
920
|
+
/** Image tag to build, e.g. myapp:latest. */
|
|
711
921
|
tag: string;
|
|
922
|
+
/** Dockerfile path; defaults to 'Dockerfile'. */
|
|
712
923
|
dockerfile?: string;
|
|
924
|
+
/** Build context directory; defaults to '.'. */
|
|
713
925
|
context?: string;
|
|
926
|
+
/** Build-time --build-arg values. */
|
|
714
927
|
buildArgs?: Record<string, string>;
|
|
715
928
|
};
|
|
716
929
|
result: {
|
|
@@ -720,20 +933,27 @@ type DockerActions = {
|
|
|
720
933
|
buildTime: number;
|
|
721
934
|
};
|
|
722
935
|
};
|
|
936
|
+
/** Simulate starting a container from an image (in-memory backend). */
|
|
723
937
|
run: {
|
|
724
938
|
params: {
|
|
939
|
+
/** Image to run (as built/tagged by the `build` action, or an arbitrary name). */
|
|
725
940
|
image: string;
|
|
941
|
+
/** Container name; auto-generated when omitted. */
|
|
726
942
|
name?: string;
|
|
943
|
+
/** Host/container port mappings. */
|
|
727
944
|
ports?: Array<{
|
|
728
945
|
host: number;
|
|
729
946
|
container: number;
|
|
730
947
|
protocol?: string;
|
|
731
948
|
}>;
|
|
949
|
+
/** Environment variables set inside the container. */
|
|
732
950
|
env?: Record<string, string>;
|
|
951
|
+
/** Host/container path mounts. */
|
|
733
952
|
volumes?: Array<{
|
|
734
953
|
host: string;
|
|
735
954
|
container: string;
|
|
736
955
|
}>;
|
|
956
|
+
/** Override command run inside the container. */
|
|
737
957
|
command?: string;
|
|
738
958
|
};
|
|
739
959
|
result: {
|
|
@@ -747,8 +967,10 @@ type DockerActions = {
|
|
|
747
967
|
}>;
|
|
748
968
|
};
|
|
749
969
|
};
|
|
970
|
+
/** Stop a running (or paused) simulated container. */
|
|
750
971
|
stop: {
|
|
751
972
|
params: {
|
|
973
|
+
/** Container id, or a unique id prefix. */
|
|
752
974
|
containerId: string;
|
|
753
975
|
};
|
|
754
976
|
result: {
|
|
@@ -757,9 +979,12 @@ type DockerActions = {
|
|
|
757
979
|
stoppedAt: number;
|
|
758
980
|
};
|
|
759
981
|
};
|
|
982
|
+
/** Remove a simulated container; fails if it is running unless `force` is set. */
|
|
760
983
|
remove: {
|
|
761
984
|
params: {
|
|
985
|
+
/** Container id, or a unique id prefix. */
|
|
762
986
|
containerId: string;
|
|
987
|
+
/** Remove even if the container is currently running. */
|
|
763
988
|
force?: boolean;
|
|
764
989
|
};
|
|
765
990
|
result: {
|
|
@@ -767,10 +992,14 @@ type DockerActions = {
|
|
|
767
992
|
removed: boolean;
|
|
768
993
|
};
|
|
769
994
|
};
|
|
995
|
+
/** Fetch generated log lines for a simulated container. */
|
|
770
996
|
logs: {
|
|
771
997
|
params: {
|
|
998
|
+
/** Container id, or a unique id prefix. */
|
|
772
999
|
containerId: string;
|
|
1000
|
+
/** Number of most-recent lines to return; defaults to 100. */
|
|
773
1001
|
tail?: number;
|
|
1002
|
+
/** Only lines timestamped at/after this ISO time. */
|
|
774
1003
|
since?: string;
|
|
775
1004
|
};
|
|
776
1005
|
result: {
|
|
@@ -779,8 +1008,10 @@ type DockerActions = {
|
|
|
779
1008
|
lineCount: number;
|
|
780
1009
|
};
|
|
781
1010
|
};
|
|
1011
|
+
/** Fetch a simulated container's current status and metadata. */
|
|
782
1012
|
status: {
|
|
783
1013
|
params: {
|
|
1014
|
+
/** Container id, or a unique id prefix. */
|
|
784
1015
|
containerId: string;
|
|
785
1016
|
};
|
|
786
1017
|
result: {
|
|
@@ -798,9 +1029,12 @@ type DockerActions = {
|
|
|
798
1029
|
stoppedAt: number | null;
|
|
799
1030
|
};
|
|
800
1031
|
};
|
|
1032
|
+
/** List simulated containers; by default only running ones (like `docker ps`). */
|
|
801
1033
|
list: {
|
|
802
1034
|
params: {
|
|
1035
|
+
/** Include stopped/exited containers, not just running ones. */
|
|
803
1036
|
all?: boolean;
|
|
1037
|
+
/** Filter by a `key` or `key=value` label match. */
|
|
804
1038
|
filterByLabel?: string;
|
|
805
1039
|
};
|
|
806
1040
|
result: {
|
|
@@ -821,20 +1055,32 @@ type DockerActions = {
|
|
|
821
1055
|
};
|
|
822
1056
|
};
|
|
823
1057
|
type StorageActions = {
|
|
1058
|
+
/**
|
|
1059
|
+
* Upload an object to an S3-compatible bucket (real S3/R2/MinIO backend when storage credentials are configured, in-memory dev fallback otherwise — refused in production). Admits either the canonical `key`+`content` pair or the file-form `file` payload (UploadDropZone's `{ name, size, type, content }` shape); when `file` is present its `key`/`content` are derived from it.
|
|
1060
|
+
* @synonyms upload file, upload object
|
|
1061
|
+
*/
|
|
824
1062
|
upload: {
|
|
825
1063
|
params: {
|
|
1064
|
+
/** Target bucket; defaults to STORAGE_BUCKET. */
|
|
826
1065
|
bucket: string;
|
|
1066
|
+
/** Object key to store under (canonical shape); ignored when `file` is present. */
|
|
827
1067
|
key?: string;
|
|
1068
|
+
/** Object content as a base64 data URL, raw base64, or plain text (canonical shape); ignored when `file` is present. */
|
|
828
1069
|
content?: string;
|
|
1070
|
+
/** MIME type override for the canonical shape; inferred from a data URL when omitted. */
|
|
829
1071
|
contentType?: string;
|
|
1072
|
+
/** File-form upload payload (as emitted by UploadDropZone); `content` is a base64 data URL. */
|
|
830
1073
|
file?: {
|
|
831
1074
|
name: string;
|
|
832
1075
|
size: number;
|
|
833
1076
|
type: string;
|
|
834
1077
|
content?: string;
|
|
835
1078
|
};
|
|
1079
|
+
/** Object ACL — 'public' produces a public URL, otherwise the URL is signed/private. */
|
|
836
1080
|
acl?: 'public' | 'private';
|
|
1081
|
+
/** Reject the upload if the file-form payload's declared size exceeds this many bytes. */
|
|
837
1082
|
maxSize?: number;
|
|
1083
|
+
/** Arbitrary metadata stored alongside the object (in-memory backend only). */
|
|
838
1084
|
metadata?: IntegrationParams;
|
|
839
1085
|
};
|
|
840
1086
|
result: {
|
|
@@ -846,16 +1092,21 @@ type StorageActions = {
|
|
|
846
1092
|
url: string;
|
|
847
1093
|
};
|
|
848
1094
|
};
|
|
1095
|
+
/** Upload a whole UploadDropZone batch in one call, one item per file — the FSM-friendly shape for bulk-persisting uploaded-file rows. */
|
|
849
1096
|
uploadMany: {
|
|
850
1097
|
params: {
|
|
1098
|
+
/** Target bucket; defaults to STORAGE_BUCKET. */
|
|
851
1099
|
bucket: string;
|
|
1100
|
+
/** Files to upload, in UploadDropZone's `{ name, size, type, content }` shape. */
|
|
852
1101
|
files: Array<{
|
|
853
1102
|
name: string;
|
|
854
1103
|
size: number;
|
|
855
1104
|
type: string;
|
|
856
1105
|
content?: string;
|
|
857
1106
|
}>;
|
|
1107
|
+
/** Object ACL applied to every file in the batch. */
|
|
858
1108
|
acl?: 'public' | 'private';
|
|
1109
|
+
/** Reject any file whose declared size exceeds this many bytes. */
|
|
859
1110
|
maxSize?: number;
|
|
860
1111
|
};
|
|
861
1112
|
result: {
|
|
@@ -870,9 +1121,12 @@ type StorageActions = {
|
|
|
870
1121
|
count: number;
|
|
871
1122
|
};
|
|
872
1123
|
};
|
|
1124
|
+
/** Download an object's content, base64-encoded. */
|
|
873
1125
|
download: {
|
|
874
1126
|
params: {
|
|
1127
|
+
/** Bucket the object lives in; defaults to STORAGE_BUCKET. */
|
|
875
1128
|
bucket: string;
|
|
1129
|
+
/** Object key. */
|
|
876
1130
|
key: string;
|
|
877
1131
|
};
|
|
878
1132
|
result: {
|
|
@@ -882,11 +1136,16 @@ type StorageActions = {
|
|
|
882
1136
|
metadata: IntegrationParams;
|
|
883
1137
|
};
|
|
884
1138
|
};
|
|
1139
|
+
/** List object keys in a bucket, optionally prefix-filtered, one page at a time. */
|
|
885
1140
|
list: {
|
|
886
1141
|
params: {
|
|
1142
|
+
/** Bucket to list; defaults to STORAGE_BUCKET. */
|
|
887
1143
|
bucket: string;
|
|
1144
|
+
/** Only keys starting with this prefix. */
|
|
888
1145
|
prefix?: string;
|
|
1146
|
+
/** Maximum keys per page; defaults to 1000. */
|
|
889
1147
|
maxKeys?: number;
|
|
1148
|
+
/** Pagination token from a previous call's `nextToken`. */
|
|
890
1149
|
continuationToken?: string;
|
|
891
1150
|
};
|
|
892
1151
|
result: {
|
|
@@ -896,23 +1155,32 @@ type StorageActions = {
|
|
|
896
1155
|
lastModified: number;
|
|
897
1156
|
}>;
|
|
898
1157
|
truncated: boolean;
|
|
1158
|
+
/** Present iff `truncated` — pass back as `continuationToken` for the next page. */
|
|
899
1159
|
nextToken?: string;
|
|
900
1160
|
};
|
|
901
1161
|
};
|
|
1162
|
+
/** Delete an object from a bucket. */
|
|
902
1163
|
delete: {
|
|
903
1164
|
params: {
|
|
1165
|
+
/** Bucket the object lives in; defaults to STORAGE_BUCKET. */
|
|
904
1166
|
bucket: string;
|
|
1167
|
+
/** Object key to delete. */
|
|
905
1168
|
key: string;
|
|
906
1169
|
};
|
|
907
1170
|
result: {
|
|
908
1171
|
deleted: boolean;
|
|
909
1172
|
};
|
|
910
1173
|
};
|
|
1174
|
+
/** Generate a time-limited pre-signed URL for direct GET or PUT access to an object. */
|
|
911
1175
|
getSignedUrl: {
|
|
912
1176
|
params: {
|
|
1177
|
+
/** Bucket the object lives in; defaults to STORAGE_BUCKET. */
|
|
913
1178
|
bucket: string;
|
|
1179
|
+
/** Object key. */
|
|
914
1180
|
key: string;
|
|
1181
|
+
/** URL validity window in seconds; defaults to 3600. */
|
|
915
1182
|
expiresIn?: number;
|
|
1183
|
+
/** Whether the URL authorizes a read or a write; defaults to 'get'. */
|
|
916
1184
|
operation?: 'get' | 'put';
|
|
917
1185
|
};
|
|
918
1186
|
result: {
|
|
@@ -922,11 +1190,16 @@ type StorageActions = {
|
|
|
922
1190
|
};
|
|
923
1191
|
};
|
|
924
1192
|
type QueueActions = {
|
|
1193
|
+
/** Add a job to an in-memory job queue, ordered by priority (higher first) among ready jobs. */
|
|
925
1194
|
enqueue: {
|
|
926
1195
|
params: {
|
|
1196
|
+
/** Queue name. */
|
|
927
1197
|
queue: string;
|
|
1198
|
+
/** Arbitrary job payload. */
|
|
928
1199
|
payload: ServiceParams;
|
|
1200
|
+
/** Delay before the job becomes eligible for dequeue, in milliseconds. */
|
|
929
1201
|
delay?: number;
|
|
1202
|
+
/** Priority — higher values are dequeued before lower ones. */
|
|
930
1203
|
priority?: number;
|
|
931
1204
|
};
|
|
932
1205
|
result: {
|
|
@@ -934,8 +1207,10 @@ type QueueActions = {
|
|
|
934
1207
|
position: number;
|
|
935
1208
|
};
|
|
936
1209
|
};
|
|
1210
|
+
/** Pop the highest-priority pending job whose delay has elapsed, marking it 'processing'; returns null if none is ready. */
|
|
937
1211
|
dequeue: {
|
|
938
1212
|
params: {
|
|
1213
|
+
/** Queue name. */
|
|
939
1214
|
queue: string;
|
|
940
1215
|
};
|
|
941
1216
|
result: {
|
|
@@ -947,8 +1222,10 @@ type QueueActions = {
|
|
|
947
1222
|
} | null;
|
|
948
1223
|
};
|
|
949
1224
|
};
|
|
1225
|
+
/** Look up a job's current status by id. */
|
|
950
1226
|
status: {
|
|
951
1227
|
params: {
|
|
1228
|
+
/** Job id from enqueue. */
|
|
952
1229
|
jobId: string;
|
|
953
1230
|
};
|
|
954
1231
|
result: {
|
|
@@ -961,34 +1238,44 @@ type QueueActions = {
|
|
|
961
1238
|
} | null;
|
|
962
1239
|
};
|
|
963
1240
|
};
|
|
1241
|
+
/** Mark a 'processing' job completed and store its result; no-op (returns false) if the job isn't in 'processing' state. */
|
|
964
1242
|
complete: {
|
|
965
1243
|
params: {
|
|
1244
|
+
/** Job id. */
|
|
966
1245
|
jobId: string;
|
|
1246
|
+
/** Result payload to attach to the job. */
|
|
967
1247
|
result?: ServiceParams;
|
|
968
1248
|
};
|
|
969
1249
|
result: {
|
|
970
1250
|
completed: boolean;
|
|
971
1251
|
};
|
|
972
1252
|
};
|
|
1253
|
+
/** Mark a 'processing' job failed; no-op (returns false) if the job isn't in 'processing' state. */
|
|
973
1254
|
fail: {
|
|
974
1255
|
params: {
|
|
1256
|
+
/** Job id. */
|
|
975
1257
|
jobId: string;
|
|
1258
|
+
/** Failure reason to attach to the job. */
|
|
976
1259
|
error?: string;
|
|
977
1260
|
};
|
|
978
1261
|
result: {
|
|
979
1262
|
failed: boolean;
|
|
980
1263
|
};
|
|
981
1264
|
};
|
|
1265
|
+
/** Remove a 'pending' job from its queue; no-op (returns false) once it has been dequeued. */
|
|
982
1266
|
cancel: {
|
|
983
1267
|
params: {
|
|
1268
|
+
/** Job id. */
|
|
984
1269
|
jobId: string;
|
|
985
1270
|
};
|
|
986
1271
|
result: {
|
|
987
1272
|
cancelled: boolean;
|
|
988
1273
|
};
|
|
989
1274
|
};
|
|
1275
|
+
/** Count pending and processing jobs in a queue. */
|
|
990
1276
|
size: {
|
|
991
1277
|
params: {
|
|
1278
|
+
/** Queue name. */
|
|
992
1279
|
queue: string;
|
|
993
1280
|
};
|
|
994
1281
|
result: {
|
|
@@ -999,35 +1286,46 @@ type QueueActions = {
|
|
|
999
1286
|
};
|
|
1000
1287
|
};
|
|
1001
1288
|
type RedisActions = {
|
|
1289
|
+
/** Read a key's value from the in-memory cache; returns null (as `value`) if absent or expired. */
|
|
1002
1290
|
get: {
|
|
1003
1291
|
params: {
|
|
1292
|
+
/** Cache key. */
|
|
1004
1293
|
key: string;
|
|
1005
1294
|
};
|
|
1006
1295
|
result: {
|
|
1007
1296
|
value: ServiceParams;
|
|
1008
1297
|
};
|
|
1009
1298
|
};
|
|
1299
|
+
/** Write a key's value, optionally with an expiry. */
|
|
1010
1300
|
set: {
|
|
1011
1301
|
params: {
|
|
1302
|
+
/** Cache key. */
|
|
1012
1303
|
key: string;
|
|
1304
|
+
/** Value to store. */
|
|
1013
1305
|
value: ServiceParams;
|
|
1306
|
+
/** Time-to-live in seconds; omit for no expiry. */
|
|
1014
1307
|
ttl?: number;
|
|
1015
1308
|
};
|
|
1016
1309
|
result: {
|
|
1017
1310
|
ok: boolean;
|
|
1018
1311
|
};
|
|
1019
1312
|
};
|
|
1313
|
+
/** Delete a key. */
|
|
1020
1314
|
delete: {
|
|
1021
1315
|
params: {
|
|
1316
|
+
/** Cache key. */
|
|
1022
1317
|
key: string;
|
|
1023
1318
|
};
|
|
1024
1319
|
result: {
|
|
1025
1320
|
deleted: boolean;
|
|
1026
1321
|
};
|
|
1027
1322
|
};
|
|
1323
|
+
/** Acquire a mutex on a key; fails (returns acquired:false) if another lock on the key is still alive. */
|
|
1028
1324
|
lock: {
|
|
1029
1325
|
params: {
|
|
1326
|
+
/** Lock key. */
|
|
1030
1327
|
key: string;
|
|
1328
|
+
/** Lock time-to-live in milliseconds; defaults to 30000 (30s). */
|
|
1031
1329
|
ttl?: number;
|
|
1032
1330
|
};
|
|
1033
1331
|
result: {
|
|
@@ -1035,44 +1333,58 @@ type RedisActions = {
|
|
|
1035
1333
|
lockId: string;
|
|
1036
1334
|
};
|
|
1037
1335
|
};
|
|
1336
|
+
/** Release a lock; only succeeds when `lockId` matches the current holder. */
|
|
1038
1337
|
unlock: {
|
|
1039
1338
|
params: {
|
|
1339
|
+
/** Lock key. */
|
|
1040
1340
|
key: string;
|
|
1341
|
+
/** Lock id returned by the corresponding `lock` call. */
|
|
1041
1342
|
lockId: string;
|
|
1042
1343
|
};
|
|
1043
1344
|
result: {
|
|
1044
1345
|
released: boolean;
|
|
1045
1346
|
};
|
|
1046
1347
|
};
|
|
1348
|
+
/** Atomically add to a numeric key's value (creating it at 0 if absent), preserving any existing TTL. */
|
|
1047
1349
|
increment: {
|
|
1048
1350
|
params: {
|
|
1351
|
+
/** Cache key. */
|
|
1049
1352
|
key: string;
|
|
1353
|
+
/** Amount to add; defaults to 1 (can be negative to decrement). */
|
|
1050
1354
|
by?: number;
|
|
1051
1355
|
};
|
|
1052
1356
|
result: {
|
|
1053
1357
|
value: number;
|
|
1054
1358
|
};
|
|
1055
1359
|
};
|
|
1360
|
+
/** Set (or reset) a key's expiry; no-op (returns set:false) if the key doesn't exist or is already expired. */
|
|
1056
1361
|
expire: {
|
|
1057
1362
|
params: {
|
|
1363
|
+
/** Cache key. */
|
|
1058
1364
|
key: string;
|
|
1365
|
+
/** New time-to-live in seconds. */
|
|
1059
1366
|
ttl: number;
|
|
1060
1367
|
};
|
|
1061
1368
|
result: {
|
|
1062
1369
|
set: boolean;
|
|
1063
1370
|
};
|
|
1064
1371
|
};
|
|
1372
|
+
/** Publish a message to a channel; delivered synchronously to in-process subscriber callbacks only. */
|
|
1065
1373
|
publish: {
|
|
1066
1374
|
params: {
|
|
1375
|
+
/** Channel name. */
|
|
1067
1376
|
channel: string;
|
|
1377
|
+
/** Message payload. */
|
|
1068
1378
|
message: ServiceParams;
|
|
1069
1379
|
};
|
|
1070
1380
|
result: {
|
|
1071
1381
|
receivers: number;
|
|
1072
1382
|
};
|
|
1073
1383
|
};
|
|
1384
|
+
/** Register interest in a channel; does not itself wire a callback (that happens at a higher-level API). */
|
|
1074
1385
|
subscribe: {
|
|
1075
1386
|
params: {
|
|
1387
|
+
/** Channel name. */
|
|
1076
1388
|
channel: string;
|
|
1077
1389
|
};
|
|
1078
1390
|
result: {
|
|
@@ -1081,10 +1393,14 @@ type RedisActions = {
|
|
|
1081
1393
|
};
|
|
1082
1394
|
};
|
|
1083
1395
|
type OAuthActions = {
|
|
1396
|
+
/** Build the provider authorization URL (PKCE + state) for an OAuth/OIDC login redirect; real OIDC discovery when OAUTH_CLIENT_ID/SECRET are configured, an in-memory mock otherwise. */
|
|
1084
1397
|
authorize: {
|
|
1085
1398
|
params: {
|
|
1399
|
+
/** Identity provider; OIDC issuer defaults to Google unless OIDC_ISSUER_URL overrides it. */
|
|
1086
1400
|
provider: 'google' | 'github' | 'auth0';
|
|
1401
|
+
/** OAuth scopes to request. */
|
|
1087
1402
|
scopes: string[];
|
|
1403
|
+
/** Callback URL the provider redirects back to after consent. */
|
|
1088
1404
|
redirectUri: string;
|
|
1089
1405
|
};
|
|
1090
1406
|
result: {
|
|
@@ -1092,9 +1408,12 @@ type OAuthActions = {
|
|
|
1092
1408
|
state: string;
|
|
1093
1409
|
};
|
|
1094
1410
|
};
|
|
1411
|
+
/** Exchange an authorization code for tokens, consuming the one-time-use `state` from the matching `authorize` call. */
|
|
1095
1412
|
token: {
|
|
1096
1413
|
params: {
|
|
1414
|
+
/** Authorization code from the provider's redirect callback. */
|
|
1097
1415
|
code: string;
|
|
1416
|
+
/** The `state` value returned by `authorize`. */
|
|
1098
1417
|
state: string;
|
|
1099
1418
|
};
|
|
1100
1419
|
result: {
|
|
@@ -1104,8 +1423,10 @@ type OAuthActions = {
|
|
|
1104
1423
|
tokenType: 'bearer';
|
|
1105
1424
|
};
|
|
1106
1425
|
};
|
|
1426
|
+
/** Exchange a refresh token for a new access token. */
|
|
1107
1427
|
refresh: {
|
|
1108
1428
|
params: {
|
|
1429
|
+
/** Refresh token from a prior `token` call. */
|
|
1109
1430
|
refreshToken: string;
|
|
1110
1431
|
};
|
|
1111
1432
|
result: {
|
|
@@ -1113,16 +1434,20 @@ type OAuthActions = {
|
|
|
1113
1434
|
expiresIn: number;
|
|
1114
1435
|
};
|
|
1115
1436
|
};
|
|
1437
|
+
/** Revoke an access or refresh token. */
|
|
1116
1438
|
revoke: {
|
|
1117
1439
|
params: {
|
|
1440
|
+
/** The access or refresh token to revoke. */
|
|
1118
1441
|
token: string;
|
|
1119
1442
|
};
|
|
1120
1443
|
result: {
|
|
1121
1444
|
revoked: boolean;
|
|
1122
1445
|
};
|
|
1123
1446
|
};
|
|
1447
|
+
/** Fetch the authenticated user's profile claims for an access token. */
|
|
1124
1448
|
userinfo: {
|
|
1125
1449
|
params: {
|
|
1450
|
+
/** Access token from a prior `token`/`refresh` call. */
|
|
1126
1451
|
accessToken: string;
|
|
1127
1452
|
};
|
|
1128
1453
|
result: {
|
|
@@ -1134,8 +1459,10 @@ type OAuthActions = {
|
|
|
1134
1459
|
};
|
|
1135
1460
|
};
|
|
1136
1461
|
type CredentialsActions = {
|
|
1462
|
+
/** List declared credentials and their masked (last-4) configuration status; open to any caller. */
|
|
1137
1463
|
list: {
|
|
1138
1464
|
params: {
|
|
1465
|
+
/** Restrict the listing to one service's declared credentials; omit for all services. */
|
|
1139
1466
|
service?: string;
|
|
1140
1467
|
};
|
|
1141
1468
|
result: {
|
|
@@ -1151,10 +1478,14 @@ type CredentialsActions = {
|
|
|
1151
1478
|
}>;
|
|
1152
1479
|
};
|
|
1153
1480
|
};
|
|
1481
|
+
/** Save a credential value into the hosted store; the env var must be one declared for the service (or a well-formed connection-ref name for `database`). Admin/owner role required. */
|
|
1154
1482
|
set: {
|
|
1155
1483
|
params: {
|
|
1484
|
+
/** Integration name the credential belongs to. */
|
|
1156
1485
|
service: string;
|
|
1486
|
+
/** Declared env-var name being set. */
|
|
1157
1487
|
envVar: string;
|
|
1488
|
+
/** Secret value to store; never logged. */
|
|
1158
1489
|
value: string;
|
|
1159
1490
|
};
|
|
1160
1491
|
result: {
|
|
@@ -1164,17 +1495,22 @@ type CredentialsActions = {
|
|
|
1164
1495
|
last4: string;
|
|
1165
1496
|
};
|
|
1166
1497
|
};
|
|
1498
|
+
/** Delete a stored credential from the hosted store. Admin/owner role required. */
|
|
1167
1499
|
remove: {
|
|
1168
1500
|
params: {
|
|
1501
|
+
/** Integration name the credential belongs to. */
|
|
1169
1502
|
service: string;
|
|
1503
|
+
/** Env-var name to remove. */
|
|
1170
1504
|
envVar: string;
|
|
1171
1505
|
};
|
|
1172
1506
|
result: {
|
|
1173
1507
|
removed: boolean;
|
|
1174
1508
|
};
|
|
1175
1509
|
};
|
|
1510
|
+
/** Check whether a service's required credentials are present and, if a live probe is declared for it, exercise the service to confirm they actually work. Admin/owner role required. */
|
|
1176
1511
|
test: {
|
|
1177
1512
|
params: {
|
|
1513
|
+
/** Integration name to test. */
|
|
1178
1514
|
service: string;
|
|
1179
1515
|
};
|
|
1180
1516
|
result: {
|
|
@@ -1186,20 +1522,28 @@ type CredentialsActions = {
|
|
|
1186
1522
|
message: string;
|
|
1187
1523
|
};
|
|
1188
1524
|
};
|
|
1525
|
+
/** Re-encrypt all stored credentials under the current master key (ALMADAR_CREDENTIAL_MASTER_KEY), retiring ALMADAR_CREDENTIAL_MASTER_KEY_PREVIOUS. Admin/owner role required. */
|
|
1189
1526
|
rotate: {
|
|
1190
1527
|
params: Record<string, never>;
|
|
1191
1528
|
result: {
|
|
1529
|
+
/** Entries successfully re-encrypted under the current key. */
|
|
1192
1530
|
rotated: number;
|
|
1531
|
+
/** Entries already under the current key (no-op). */
|
|
1193
1532
|
alreadyCurrent: number;
|
|
1533
|
+
/** Entries that could not be decrypted with either key (data loss risk). */
|
|
1194
1534
|
unreadable: number;
|
|
1195
1535
|
};
|
|
1196
1536
|
};
|
|
1197
1537
|
};
|
|
1198
1538
|
type OtelActions = {
|
|
1539
|
+
/** Start a trace span (in-memory backend — no OpenTelemetry SDK/exporter). */
|
|
1199
1540
|
startSpan: {
|
|
1200
1541
|
params: {
|
|
1542
|
+
/** Span name. */
|
|
1201
1543
|
name: string;
|
|
1544
|
+
/** Key-value attributes attached to the span. */
|
|
1202
1545
|
attributes?: IntegrationParams;
|
|
1546
|
+
/** Existing trace id to attach this span to; a new one is generated when omitted. */
|
|
1203
1547
|
traceId?: string;
|
|
1204
1548
|
};
|
|
1205
1549
|
result: {
|
|
@@ -1207,38 +1551,52 @@ type OtelActions = {
|
|
|
1207
1551
|
traceId: string;
|
|
1208
1552
|
};
|
|
1209
1553
|
};
|
|
1554
|
+
/** Mark a span ended, optionally recording its final status; no-op (returns ended:false) for an unknown span id. */
|
|
1210
1555
|
endSpan: {
|
|
1211
1556
|
params: {
|
|
1557
|
+
/** Span id from startSpan. */
|
|
1212
1558
|
spanId: string;
|
|
1559
|
+
/** Final span status. */
|
|
1213
1560
|
status?: 'ok' | 'error';
|
|
1214
1561
|
};
|
|
1215
1562
|
result: {
|
|
1216
1563
|
ended: boolean;
|
|
1217
1564
|
};
|
|
1218
1565
|
};
|
|
1566
|
+
/** Attach a timestamped event to an open span; no-op (returns added:false) for an unknown span id. */
|
|
1219
1567
|
addEvent: {
|
|
1220
1568
|
params: {
|
|
1569
|
+
/** Span id from startSpan. */
|
|
1221
1570
|
spanId: string;
|
|
1571
|
+
/** Event name. */
|
|
1222
1572
|
name: string;
|
|
1573
|
+
/** Key-value attributes attached to the event. */
|
|
1223
1574
|
attributes?: IntegrationParams;
|
|
1224
1575
|
};
|
|
1225
1576
|
result: {
|
|
1226
1577
|
added: boolean;
|
|
1227
1578
|
};
|
|
1228
1579
|
};
|
|
1580
|
+
/** Record a metric sample: counters accumulate, gauges overwrite, histograms append to the sample list. */
|
|
1229
1581
|
recordMetric: {
|
|
1230
1582
|
params: {
|
|
1583
|
+
/** Metric name. */
|
|
1231
1584
|
name: string;
|
|
1585
|
+
/** Sample value. */
|
|
1232
1586
|
value: number;
|
|
1587
|
+
/** Aggregation kind; defaults to 'counter'. */
|
|
1233
1588
|
type?: 'counter' | 'gauge' | 'histogram';
|
|
1589
|
+
/** Key-value labels attached to the metric (replaces prior labels on the same name). */
|
|
1234
1590
|
labels?: IntegrationParams;
|
|
1235
1591
|
};
|
|
1236
1592
|
result: {
|
|
1237
1593
|
recorded: boolean;
|
|
1238
1594
|
};
|
|
1239
1595
|
};
|
|
1596
|
+
/** Fetch a stored span's full record by id; null if unknown. */
|
|
1240
1597
|
getSpan: {
|
|
1241
1598
|
params: {
|
|
1599
|
+
/** Span id from startSpan. */
|
|
1242
1600
|
spanId: string;
|
|
1243
1601
|
};
|
|
1244
1602
|
result: {
|
|
@@ -1251,6 +1609,7 @@ type OtelActions = {
|
|
|
1251
1609
|
attributes: IntegrationParams;
|
|
1252
1610
|
} | null;
|
|
1253
1611
|
};
|
|
1612
|
+
/** Fetch all recorded metrics, keyed by metric name. */
|
|
1254
1613
|
getMetrics: {
|
|
1255
1614
|
params: Record<string, never>;
|
|
1256
1615
|
result: Record<string, {
|
|
@@ -1263,8 +1622,10 @@ type OtelActions = {
|
|
|
1263
1622
|
};
|
|
1264
1623
|
};
|
|
1265
1624
|
type CLIActions = {
|
|
1625
|
+
/** Validate an orbital schema by writing it to a temp file and shelling out to `npx @almadar/cli validate --format=json`. */
|
|
1266
1626
|
validate: {
|
|
1267
1627
|
params: {
|
|
1628
|
+
/** Raw .orb schema content to validate. */
|
|
1268
1629
|
schema: string;
|
|
1269
1630
|
};
|
|
1270
1631
|
result: {
|
|
@@ -1276,11 +1637,16 @@ type CLIActions = {
|
|
|
1276
1637
|
};
|
|
1277
1638
|
};
|
|
1278
1639
|
type DeepAgentActions = {
|
|
1640
|
+
/** Send a chat message to the DeepAgent server (POST /api/agent/message), continuing an existing thread or starting one. */
|
|
1279
1641
|
sendMessage: {
|
|
1280
1642
|
params: {
|
|
1643
|
+
/** Message text. */
|
|
1281
1644
|
message: string;
|
|
1645
|
+
/** Existing thread id to continue; a new thread starts when omitted. */
|
|
1282
1646
|
threadId?: string;
|
|
1647
|
+
/** Named skill to invoke for this message. */
|
|
1283
1648
|
skill?: string;
|
|
1649
|
+
/** Extra context passed through to the agent. */
|
|
1284
1650
|
context?: IntegrationParams;
|
|
1285
1651
|
};
|
|
1286
1652
|
result: {
|
|
@@ -1288,16 +1654,20 @@ type DeepAgentActions = {
|
|
|
1288
1654
|
threadId: string;
|
|
1289
1655
|
};
|
|
1290
1656
|
};
|
|
1657
|
+
/** Cancel an in-flight generation on a DeepAgent thread (POST /api/agent/cancel). */
|
|
1291
1658
|
cancelGeneration: {
|
|
1292
1659
|
params: {
|
|
1660
|
+
/** Thread whose generation to cancel. */
|
|
1293
1661
|
threadId: string;
|
|
1294
1662
|
};
|
|
1295
1663
|
result: {
|
|
1296
1664
|
cancelled: boolean;
|
|
1297
1665
|
};
|
|
1298
1666
|
};
|
|
1667
|
+
/** Validate a schema via the DeepAgent server (POST /api/schema/validate). */
|
|
1299
1668
|
validateSchema: {
|
|
1300
1669
|
params: {
|
|
1670
|
+
/** Schema content to validate. */
|
|
1301
1671
|
schema: string;
|
|
1302
1672
|
};
|
|
1303
1673
|
result: {
|
|
@@ -1305,9 +1675,12 @@ type DeepAgentActions = {
|
|
|
1305
1675
|
errors: string[];
|
|
1306
1676
|
};
|
|
1307
1677
|
};
|
|
1678
|
+
/** Compile a schema to a target shell via the DeepAgent server (POST /api/schema/compile). */
|
|
1308
1679
|
compileSchema: {
|
|
1309
1680
|
params: {
|
|
1681
|
+
/** Schema content to compile. */
|
|
1310
1682
|
schema: string;
|
|
1683
|
+
/** Target codegen shell (e.g. 'typescript'). */
|
|
1311
1684
|
shell?: string;
|
|
1312
1685
|
};
|
|
1313
1686
|
result: {
|
|
@@ -1315,8 +1688,10 @@ type DeepAgentActions = {
|
|
|
1315
1688
|
files: string[];
|
|
1316
1689
|
};
|
|
1317
1690
|
};
|
|
1691
|
+
/** Fetch a thread's message history via the DeepAgent server (POST /api/agent/history). */
|
|
1318
1692
|
getThreadHistory: {
|
|
1319
1693
|
params: {
|
|
1694
|
+
/** Thread id. */
|
|
1320
1695
|
threadId: string;
|
|
1321
1696
|
};
|
|
1322
1697
|
result: {
|
|
@@ -1329,10 +1704,14 @@ type DeepAgentActions = {
|
|
|
1329
1704
|
};
|
|
1330
1705
|
};
|
|
1331
1706
|
type DatabaseActions = {
|
|
1707
|
+
/** Run a single read-only SELECT against a Postgres connection (write statements and multi-statement SQL are rejected before execution). */
|
|
1332
1708
|
query: {
|
|
1333
1709
|
params: {
|
|
1710
|
+
/** Env-var NAME whose value is the Postgres connection string — never the secret itself; resolved from the credential store/environment at run time. */
|
|
1334
1711
|
connectionRef: string;
|
|
1712
|
+
/** SQL text; must be exactly one SELECT statement. */
|
|
1335
1713
|
sql: string;
|
|
1714
|
+
/** Positional bind parameters for the query. */
|
|
1336
1715
|
params?: DatabaseQueryParamValue[];
|
|
1337
1716
|
};
|
|
1338
1717
|
result: {
|
|
@@ -1342,8 +1721,10 @@ type DatabaseActions = {
|
|
|
1342
1721
|
};
|
|
1343
1722
|
};
|
|
1344
1723
|
type WikimediaActions = {
|
|
1724
|
+
/** Look up a Wikipedia page (redirect-resolved): a one-line description, a Commons thumbnail, and the lead-section extract; empty fields on a miss. */
|
|
1345
1725
|
getPage: {
|
|
1346
1726
|
params: {
|
|
1727
|
+
/** Page title to look up. */
|
|
1347
1728
|
title: string;
|
|
1348
1729
|
};
|
|
1349
1730
|
result: {
|
|
@@ -1355,25 +1736,32 @@ type WikimediaActions = {
|
|
|
1355
1736
|
};
|
|
1356
1737
|
};
|
|
1357
1738
|
type IconifyActions = {
|
|
1739
|
+
/** Check whether an icon exists at the given Iconify API path (a GET, not a HEAD, despite the name). */
|
|
1358
1740
|
svgExists: {
|
|
1359
1741
|
params: {
|
|
1742
|
+
/** Iconify API path segment to probe, e.g. 'prefix/name.svg'. */
|
|
1360
1743
|
path: string;
|
|
1361
1744
|
};
|
|
1362
1745
|
result: {
|
|
1363
1746
|
exists: boolean;
|
|
1364
1747
|
};
|
|
1365
1748
|
};
|
|
1749
|
+
/** Search Iconify's icon sets by relevance. */
|
|
1366
1750
|
search: {
|
|
1367
1751
|
params: {
|
|
1752
|
+
/** Search query text. */
|
|
1368
1753
|
query: string;
|
|
1754
|
+
/** Maximum icon ids to return; defaults to 1. */
|
|
1369
1755
|
limit?: number;
|
|
1370
1756
|
};
|
|
1371
1757
|
result: {
|
|
1372
1758
|
icons: string[];
|
|
1373
1759
|
};
|
|
1374
1760
|
};
|
|
1761
|
+
/** Fetch an icon's raw SVG body (for color-tone classification); null if the icon or its collection isn't found. */
|
|
1375
1762
|
getIconBody: {
|
|
1376
1763
|
params: {
|
|
1764
|
+
/** Icon id in "prefix:name" form. */
|
|
1377
1765
|
iconId: string;
|
|
1378
1766
|
};
|
|
1379
1767
|
result: {
|
|
@@ -1382,9 +1770,12 @@ type IconifyActions = {
|
|
|
1382
1770
|
};
|
|
1383
1771
|
};
|
|
1384
1772
|
type ArxivActions = {
|
|
1773
|
+
/** Search arXiv's public Atom API by relevance. */
|
|
1385
1774
|
search: {
|
|
1386
1775
|
params: {
|
|
1776
|
+
/** Search query text (matched across all fields). */
|
|
1387
1777
|
query: string;
|
|
1778
|
+
/** Maximum results to return; defaults to 8. */
|
|
1388
1779
|
maxResults?: number;
|
|
1389
1780
|
};
|
|
1390
1781
|
result: {
|