runline 0.11.6 → 0.13.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/commands/actions.js +3 -1
- package/dist/core/engine.js +3 -0
- package/dist/index.d.ts +1 -1
- package/dist/plugin/api.d.ts +2 -1
- package/dist/plugin/types.d.ts +2 -0
- package/dist/plugins/_shared/googleSchemas.js +23 -0
- package/dist/plugins/actionNetwork/src/index.js +23 -0
- package/dist/plugins/activeCampaign/src/index.js +48 -0
- package/dist/plugins/adalo/src/index.js +5 -0
- package/dist/plugins/affinity/src/index.js +16 -0
- package/dist/plugins/agileCrm/src/index.js +15 -0
- package/dist/plugins/airtable/src/index.js +10 -0
- package/dist/plugins/airtop/src/index.js +24 -0
- package/dist/plugins/apiTemplateIo/src/index.js +4 -0
- package/dist/plugins/asana/src/index.js +22 -0
- package/dist/plugins/autopilot/src/index.js +11 -0
- package/dist/plugins/bambooHr/src/index.js +11 -0
- package/dist/plugins/bannerbear/src/index.js +4 -0
- package/dist/plugins/baserow/src/index.js +8 -0
- package/dist/plugins/beeminder/src/index.js +18 -0
- package/dist/plugins/bitly/src/index.js +3 -0
- package/dist/plugins/bitwarden/src/index.js +19 -0
- package/dist/plugins/box/src/index.js +11 -0
- package/dist/plugins/brandfetch/src/index.js +5 -0
- package/dist/plugins/brevo/src/index.js +15 -0
- package/dist/plugins/bubble/src/index.js +5 -0
- package/dist/plugins/chargebee/src/index.js +5 -0
- package/dist/plugins/circleci/src/index.js +3 -0
- package/dist/plugins/ciscoWebex/src/index.js +10 -0
- package/dist/plugins/clearbit/src/index.js +3 -0
- package/dist/plugins/clickup/src/index.js +61 -0
- package/dist/plugins/clockify/src/index.js +25 -0
- package/dist/plugins/cloudflare/src/index.js +4 -0
- package/dist/plugins/cockpit/src/index.js +5 -0
- package/dist/plugins/coda/src/index.js +18 -0
- package/dist/plugins/coingecko/src/index.js +10 -0
- package/dist/plugins/contentful/src/index.js +7 -0
- package/dist/plugins/convertkit/src/index.js +16 -0
- package/dist/plugins/copper/src/index.js +7 -0
- package/dist/plugins/cortex/src/index.js +4 -0
- package/dist/plugins/currents/src/index.js +22 -0
- package/dist/plugins/customerIo/src/index.js +9 -0
- package/dist/plugins/databricks/src/index.js +34 -0
- package/dist/plugins/deepl/src/index.js +2 -0
- package/dist/plugins/demio/src/index.js +4 -0
- package/dist/plugins/dhl/src/index.js +1 -0
- package/dist/plugins/discord/src/index.js +13 -0
- package/dist/plugins/discourse/src/index.js +16 -0
- package/dist/plugins/disqus/src/index.js +4 -0
- package/dist/plugins/docker/src/index.js +5 -0
- package/dist/plugins/drift/src/index.js +5 -0
- package/dist/plugins/dropbox/src/index.js +9 -0
- package/dist/plugins/dropcontact/src/index.js +2 -0
- package/dist/plugins/egoi/src/index.js +4 -0
- package/dist/plugins/elasticsearch/src/index.js +9 -0
- package/dist/plugins/emelia/src/index.js +9 -0
- package/dist/plugins/erpnext/src/index.js +5 -0
- package/dist/plugins/facebookGraph/src/index.js +1 -0
- package/dist/plugins/freshdesk/src/index.js +10 -0
- package/dist/plugins/freshservice/src/index.js +7 -0
- package/dist/plugins/freshworksCrm/src/index.js +7 -0
- package/dist/plugins/getresponse/src/index.js +5 -0
- package/dist/plugins/ghost/src/index.js +5 -0
- package/dist/plugins/github/src/index.js +37 -0
- package/dist/plugins/gitlab/src/index.js +17 -0
- package/dist/plugins/gmail/src/index.js +200 -184
- package/dist/plugins/gong/src/index.js +4 -0
- package/dist/plugins/googleAppsScript/src/index.js +98 -43
- package/dist/plugins/googleCalendar/src/index.js +329 -250
- package/dist/plugins/googleContacts/src/index.js +144 -145
- package/dist/plugins/googleDocs/src/documents.js +31 -38
- package/dist/plugins/googleDocs/src/formatting.js +51 -47
- package/dist/plugins/googleDocs/src/images.js +23 -26
- package/dist/plugins/googleDocs/src/shared.js +55 -0
- package/dist/plugins/googleDocs/src/structure.js +111 -123
- package/dist/plugins/googleDocs/src/tables.js +103 -154
- package/dist/plugins/googleDocs/src/tabs.js +27 -23
- package/dist/plugins/googleDocs/src/text.js +106 -136
- package/dist/plugins/googleDrive/src/index.js +461 -408
- package/dist/plugins/googleImage/src/index.js +14 -16
- package/dist/plugins/googleSheets/src/index.js +527 -339
- package/dist/plugins/googleSlides/src/index.js +92 -72
- package/dist/plugins/googleTasks/src/index.js +94 -92
- package/dist/plugins/gotify/src/index.js +3 -0
- package/dist/plugins/gotowebinar/src/index.js +20 -0
- package/dist/plugins/grafana/src/index.js +17 -0
- package/dist/plugins/graphql/src/index.js +2 -0
- package/dist/plugins/grist/src/index.js +4 -0
- package/dist/plugins/hackernews/src/index.js +6 -0
- package/dist/plugins/halopsa/src/index.js +5 -0
- package/dist/plugins/harvest/src/index.js +14 -0
- package/dist/plugins/helpscout/src/index.js +13 -0
- package/dist/plugins/highlevel/src/index.js +17 -0
- package/dist/plugins/homeAssistant/src/index.js +13 -0
- package/dist/plugins/hubspot/src/index.js +14 -0
- package/dist/plugins/humanticAi/src/index.js +3 -0
- package/dist/plugins/hunter/src/index.js +3 -0
- package/dist/plugins/intercom/src/index.js +10 -0
- package/dist/plugins/iterable/src/index.js +6 -0
- package/dist/plugins/jenkins/src/index.js +11 -0
- package/dist/plugins/jira/src/index.js +16 -0
- package/dist/plugins/keap/src/index.js +28 -0
- package/dist/plugins/kobotoolbox/src/index.js +17 -0
- package/dist/plugins/lemlist/src/index.js +15 -0
- package/dist/plugins/linear/src/attachments.js +6 -0
- package/dist/plugins/linear/src/comments.js +5 -0
- package/dist/plugins/linear/src/cycles.js +2 -0
- package/dist/plugins/linear/src/initiatives.js +5 -0
- package/dist/plugins/linear/src/issues.js +14 -0
- package/dist/plugins/linear/src/labels.js +5 -0
- package/dist/plugins/linear/src/organization.js +1 -0
- package/dist/plugins/linear/src/projects.js +11 -0
- package/dist/plugins/linear/src/shared.js +2 -0
- package/dist/plugins/linear/src/states.js +2 -0
- package/dist/plugins/linear/src/teams.js +3 -0
- package/dist/plugins/linear/src/users.js +2 -0
- package/dist/plugins/linear/src/views.js +4 -0
- package/dist/plugins/linear/src/webhooks.js +4 -0
- package/dist/plugins/lingvanex/src/index.js +1 -0
- package/dist/plugins/linkedin/src/index.js +1 -0
- package/dist/plugins/lonescale/src/index.js +4 -0
- package/dist/plugins/magento/src/index.js +15 -0
- package/dist/plugins/mailcheck/src/index.js +1 -0
- package/dist/plugins/mailchimp/src/index.js +14 -0
- package/dist/plugins/mailerlite/src/index.js +4 -0
- package/dist/plugins/mailgun/src/index.js +1 -0
- package/dist/plugins/mailjet/src/index.js +3 -0
- package/dist/plugins/mandrill/src/index.js +2 -0
- package/dist/plugins/marketstack/src/index.js +3 -0
- package/dist/plugins/matrix/src/index.js +10 -0
- package/dist/plugins/mattermost/src/index.js +19 -0
- package/dist/plugins/mautic/src/index.js +20 -0
- package/dist/plugins/medium/src/index.js +3 -0
- package/dist/plugins/messagebird/src/index.js +2 -0
- package/dist/plugins/metabase/src/index.js +10 -0
- package/dist/plugins/microsoftCalendar/src/index.js +2 -0
- package/dist/plugins/microsoftFiles/src/index.js +5 -0
- package/dist/plugins/microsoftMail/src/index.js +4 -0
- package/dist/plugins/misp/src/index.js +44 -0
- package/dist/plugins/mocean/src/index.js +2 -0
- package/dist/plugins/monday/src/index.js +18 -0
- package/dist/plugins/monicaCrm/src/index.js +5 -0
- package/dist/plugins/msg91/src/index.js +1 -0
- package/dist/plugins/nasa/src/index.js +7 -0
- package/dist/plugins/netlify/src/index.js +7 -0
- package/dist/plugins/netscalerAdc/src/index.js +3 -0
- package/dist/plugins/nextcloud/src/index.js +13 -0
- package/dist/plugins/nocodb/src/index.js +5 -0
- package/dist/plugins/node/src/index.js +38 -0
- package/dist/plugins/notion/src/index.js +14 -0
- package/dist/plugins/npm/src/index.js +5 -0
- package/dist/plugins/odoo/src/index.js +6 -0
- package/dist/plugins/okta/src/index.js +5 -0
- package/dist/plugins/oneSimpleApi/src/index.js +10 -0
- package/dist/plugins/onfleet/src/index.js +24 -0
- package/dist/plugins/openThesaurus/src/index.js +1 -0
- package/dist/plugins/openai/src/index.js +1 -0
- package/dist/plugins/openweathermap/src/index.js +2 -0
- package/dist/plugins/oura/src/index.js +2 -0
- package/dist/plugins/paddle/src/index.js +9 -0
- package/dist/plugins/pagerduty/src/index.js +9 -0
- package/dist/plugins/parallel/src/index.js +1 -0
- package/dist/plugins/paypal/src/index.js +4 -0
- package/dist/plugins/peekalink/src/index.js +2 -0
- package/dist/plugins/phantombuster/src/index.js +5 -0
- package/dist/plugins/philipsHue/src/index.js +4 -0
- package/dist/plugins/pipedrive/src/index.js +14 -0
- package/dist/plugins/plivo/src/index.js +3 -0
- package/dist/plugins/postbin/src/index.js +6 -0
- package/dist/plugins/posthog/src/index.js +5 -0
- package/dist/plugins/profitwell/src/index.js +2 -0
- package/dist/plugins/pushbullet/src/index.js +4 -0
- package/dist/plugins/pushcut/src/index.js +1 -0
- package/dist/plugins/pushover/src/index.js +1 -0
- package/dist/plugins/quickbase/src/index.js +8 -0
- package/dist/plugins/quickbooks/src/index.js +5 -0
- package/dist/plugins/quickchart/src/index.js +1 -0
- package/dist/plugins/raindrop/src/index.js +13 -0
- package/dist/plugins/recraft/src/index.js +1 -0
- package/dist/plugins/reddit/src/index.js +10 -0
- package/dist/plugins/replicate/src/index.js +1 -0
- package/dist/plugins/rocketchat/src/index.js +1 -0
- package/dist/plugins/rundeck/src/index.js +2 -0
- package/dist/plugins/salesforce/src/metadata.js +4 -0
- package/dist/plugins/salesforce/src/query.js +5 -0
- package/dist/plugins/salesforce/src/sobjects.js +12 -0
- package/dist/plugins/salesmate/src/index.js +5 -0
- package/dist/plugins/securityScorecard/src/index.js +14 -0
- package/dist/plugins/segment/src/index.js +4 -0
- package/dist/plugins/sendgrid/src/index.js +10 -0
- package/dist/plugins/sendy/src/index.js +6 -0
- package/dist/plugins/sentry/src/index.js +24 -0
- package/dist/plugins/servicenow/src/index.js +10 -0
- package/dist/plugins/shiftLabs/src/index.js +6 -0
- package/dist/plugins/shiftLabs/src/issues.js +4 -0
- package/dist/plugins/shiftLabs/src/pages.js +10 -0
- package/dist/plugins/shiftLabs/src/shared.js +2 -0
- package/dist/plugins/shiftLabs/src/transcription.js +203 -0
- package/dist/plugins/shopify/src/index.js +10 -0
- package/dist/plugins/signl4/src/index.js +2 -0
- package/dist/plugins/slack/src/index.js +38 -0
- package/dist/plugins/sms77/src/index.js +2 -0
- package/dist/plugins/splunk/src/index.js +16 -0
- package/dist/plugins/spotify/src/index.js +30 -0
- package/dist/plugins/stackby/src/index.js +4 -0
- package/dist/plugins/steel/src/browser.js +7 -0
- package/dist/plugins/steel/src/captchas.js +3 -0
- package/dist/plugins/steel/src/credentials.js +4 -0
- package/dist/plugins/steel/src/extensions.js +5 -0
- package/dist/plugins/steel/src/files.js +10 -0
- package/dist/plugins/steel/src/profiles.js +4 -0
- package/dist/plugins/steel/src/sessions.js +11 -0
- package/dist/plugins/storyblok/src/index.js +7 -0
- package/dist/plugins/strapi/src/index.js +5 -0
- package/dist/plugins/strava/src/index.js +6 -0
- package/dist/plugins/stripe/src/index.js +20 -0
- package/dist/plugins/supabase/src/index.js +5 -0
- package/dist/plugins/syncromsp/src/index.js +20 -0
- package/dist/plugins/tapfiliate/src/index.js +11 -0
- package/dist/plugins/telegram/src/index.js +21 -0
- package/dist/plugins/thehive/src/index.js +23 -0
- package/dist/plugins/thehiveProject/src/index.js +31 -0
- package/dist/plugins/todoist/src/index.js +31 -0
- package/dist/plugins/together/src/index.js +1 -0
- package/dist/plugins/travisci/src/index.js +5 -0
- package/dist/plugins/trello/src/index.js +37 -0
- package/dist/plugins/twake/src/index.js +1 -0
- package/dist/plugins/twilio/src/index.js +2 -0
- package/dist/plugins/twist/src/index.js +22 -0
- package/dist/plugins/twitter/src/index.js +8 -0
- package/dist/plugins/unleashedSoftware/src/index.js +3 -0
- package/dist/plugins/uplead/src/index.js +2 -0
- package/dist/plugins/uproc/src/index.js +1 -0
- package/dist/plugins/uptimerobot/src/index.js +22 -0
- package/dist/plugins/urlscanio/src/index.js +3 -0
- package/dist/plugins/vercel/src/account.js +1 -0
- package/dist/plugins/vercel/src/deployments.js +5 -0
- package/dist/plugins/vercel/src/env.js +4 -0
- package/dist/plugins/vercel/src/projects.js +2 -0
- package/dist/plugins/vercel/src/shared.js +1 -0
- package/dist/plugins/vero/src/index.js +6 -0
- package/dist/plugins/vonage/src/index.js +1 -0
- package/dist/plugins/wekan/src/index.js +24 -0
- package/dist/plugins/woocommerce/src/index.js +5 -0
- package/dist/plugins/wordpress/src/index.js +10 -0
- package/dist/plugins/xai/src/index.js +1 -0
- package/dist/plugins/xero/src/index.js +8 -0
- package/dist/plugins/yourls/src/index.js +3 -0
- package/dist/plugins/zammad/src/index.js +12 -0
- package/dist/plugins/zendesk/src/index.js +18 -0
- package/dist/plugins/zoho/src/index.js +6 -0
- package/dist/plugins/zoom/src/index.js +5 -0
- package/dist/plugins/zulip/src/index.js +15 -0
- package/dist/sdk.d.ts +2 -1
- package/dist/sdk.js +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import * as t from "typebox";
|
|
1
2
|
import { googleAccessToken } from "../../_shared/googleAuth.js";
|
|
3
|
+
import { Id, NonEmptyString, PositiveInteger, stringEnum, } from "../../_shared/googleSchemas.js";
|
|
2
4
|
const SCRIPT_API = "https://script.googleapis.com/v1";
|
|
3
5
|
const DRIVE_API = "https://www.googleapis.com/drive/v3";
|
|
4
6
|
const SCOPES = [
|
|
@@ -7,6 +9,30 @@ const SCOPES = [
|
|
|
7
9
|
"https://www.googleapis.com/auth/script.processes",
|
|
8
10
|
"https://www.googleapis.com/auth/drive.metadata.readonly",
|
|
9
11
|
];
|
|
12
|
+
const scriptFileTypeSchema = stringEnum(["SERVER_JS", "HTML", "JSON"]);
|
|
13
|
+
const jsonValueSchema = t.Unsafe({
|
|
14
|
+
$defs: {
|
|
15
|
+
value: {
|
|
16
|
+
anyOf: [
|
|
17
|
+
{ type: "null" },
|
|
18
|
+
{ type: "string" },
|
|
19
|
+
{ type: "number" },
|
|
20
|
+
{ type: "boolean" },
|
|
21
|
+
{ type: "array", items: { $ref: "#/$defs/value" } },
|
|
22
|
+
{
|
|
23
|
+
type: "object",
|
|
24
|
+
additionalProperties: { $ref: "#/$defs/value" },
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
$ref: "#/$defs/value",
|
|
30
|
+
});
|
|
31
|
+
const scriptFileSchema = t.Object({
|
|
32
|
+
name: NonEmptyString,
|
|
33
|
+
type: scriptFileTypeSchema,
|
|
34
|
+
source: t.String(),
|
|
35
|
+
}, { additionalProperties: false });
|
|
10
36
|
function accessToken(ctx) {
|
|
11
37
|
return googleAccessToken(ctx, "googleAppsScript", SCOPES);
|
|
12
38
|
}
|
|
@@ -46,11 +72,16 @@ export default function googleAppsScript(rl) {
|
|
|
46
72
|
serviceAccountSubject: { type: "string", required: false, description: "User to impersonate (domain-wide delegation)", env: "GOOGLE_APPS_SCRIPT_SERVICE_ACCOUNT_SUBJECT" },
|
|
47
73
|
});
|
|
48
74
|
rl.registerAction("script.list", {
|
|
75
|
+
access: "read",
|
|
49
76
|
description: "List Apps Script projects in Drive (standalone scripts; bound scripts live inside their container and don't appear here).",
|
|
50
|
-
inputSchema: {
|
|
51
|
-
query: {
|
|
52
|
-
pageSize:
|
|
53
|
-
|
|
77
|
+
inputSchema: t.Object({
|
|
78
|
+
query: t.Optional(t.String({ description: "Case-insensitive name substring filter." })),
|
|
79
|
+
pageSize: t.Optional(t.Integer({
|
|
80
|
+
minimum: 1,
|
|
81
|
+
maximum: 1000,
|
|
82
|
+
description: "Max results (default 50).",
|
|
83
|
+
})),
|
|
84
|
+
}, { additionalProperties: false }),
|
|
54
85
|
async execute(input, ctx) {
|
|
55
86
|
const params = new URLSearchParams({
|
|
56
87
|
q: "mimeType='application/vnd.google-apps.script' and trashed=false",
|
|
@@ -68,19 +99,24 @@ export default function googleAppsScript(rl) {
|
|
|
68
99
|
},
|
|
69
100
|
});
|
|
70
101
|
rl.registerAction("project.getContent", {
|
|
102
|
+
access: "read",
|
|
71
103
|
description: "Get all files of an Apps Script project (name, type, source).",
|
|
72
|
-
inputSchema: { scriptId:
|
|
104
|
+
inputSchema: t.Object({ scriptId: Id }, { additionalProperties: false }),
|
|
73
105
|
async execute(input, ctx) {
|
|
74
106
|
const res = await call(ctx, "GET", `${SCRIPT_API}/projects/${input.scriptId}/content`);
|
|
75
107
|
return { scriptId: input.scriptId, files: res.files ?? [] };
|
|
76
108
|
},
|
|
77
109
|
});
|
|
78
110
|
rl.registerAction("project.readFile", {
|
|
111
|
+
access: "read",
|
|
79
112
|
description: "Read one file's source from a project.",
|
|
80
|
-
inputSchema: {
|
|
81
|
-
scriptId:
|
|
82
|
-
name: {
|
|
83
|
-
|
|
113
|
+
inputSchema: t.Object({
|
|
114
|
+
scriptId: Id,
|
|
115
|
+
name: t.String({
|
|
116
|
+
minLength: 1,
|
|
117
|
+
description: "File name without extension (e.g. 'Code', 'appsscript').",
|
|
118
|
+
}),
|
|
119
|
+
}, { additionalProperties: false }),
|
|
84
120
|
async execute(input, ctx) {
|
|
85
121
|
const res = await call(ctx, "GET", `${SCRIPT_API}/projects/${input.scriptId}/content`);
|
|
86
122
|
const file = (res.files ?? []).find((f) => f.name === input.name);
|
|
@@ -90,13 +126,14 @@ export default function googleAppsScript(rl) {
|
|
|
90
126
|
},
|
|
91
127
|
});
|
|
92
128
|
rl.registerAction("file.edit", {
|
|
129
|
+
access: "write",
|
|
93
130
|
description: "Replace (or add) a single file's source, leaving other files untouched. Read-modify-write — the safe way to change code.",
|
|
94
|
-
inputSchema: {
|
|
95
|
-
scriptId:
|
|
96
|
-
name:
|
|
97
|
-
source:
|
|
98
|
-
type:
|
|
99
|
-
},
|
|
131
|
+
inputSchema: t.Object({
|
|
132
|
+
scriptId: Id,
|
|
133
|
+
name: NonEmptyString,
|
|
134
|
+
source: t.String(),
|
|
135
|
+
type: t.Optional(stringEnum(["SERVER_JS", "HTML", "JSON"])),
|
|
136
|
+
}, { additionalProperties: false }),
|
|
100
137
|
async execute(input, ctx) {
|
|
101
138
|
const cur = await call(ctx, "GET", `${SCRIPT_API}/projects/${input.scriptId}/content`);
|
|
102
139
|
const files = cur.files ?? [];
|
|
@@ -112,22 +149,34 @@ export default function googleAppsScript(rl) {
|
|
|
112
149
|
},
|
|
113
150
|
});
|
|
114
151
|
rl.registerAction("project.updateContent", {
|
|
152
|
+
access: "write",
|
|
115
153
|
description: "Replace the entire project file set. files = [{name, type, source}], must include the appsscript JSON manifest. Prefer file.edit for single changes.",
|
|
116
|
-
inputSchema: {
|
|
117
|
-
scriptId:
|
|
118
|
-
files:
|
|
119
|
-
|
|
154
|
+
inputSchema: t.Object({
|
|
155
|
+
scriptId: Id,
|
|
156
|
+
files: t.Array(scriptFileSchema, {
|
|
157
|
+
minItems: 1,
|
|
158
|
+
contains: t.Object({
|
|
159
|
+
name: t.Literal("appsscript"),
|
|
160
|
+
type: t.Literal("JSON"),
|
|
161
|
+
}),
|
|
162
|
+
description: "Complete project files, including the appsscript JSON manifest",
|
|
163
|
+
}),
|
|
164
|
+
}, { additionalProperties: false }),
|
|
120
165
|
async execute(input, ctx) {
|
|
121
166
|
const res = await call(ctx, "PUT", `${SCRIPT_API}/projects/${input.scriptId}/content`, { files: input.files });
|
|
122
167
|
return { scriptId: input.scriptId, fileCount: (res.files ?? []).length };
|
|
123
168
|
},
|
|
124
169
|
});
|
|
125
170
|
rl.registerAction("project.create", {
|
|
171
|
+
access: "write",
|
|
126
172
|
description: "Create a new Apps Script project. Pass parentId (a Drive file id, e.g. a Sheet) to bind it to that container.",
|
|
127
|
-
inputSchema: {
|
|
128
|
-
title:
|
|
129
|
-
parentId: {
|
|
130
|
-
|
|
173
|
+
inputSchema: t.Object({
|
|
174
|
+
title: NonEmptyString,
|
|
175
|
+
parentId: t.Optional(t.String({
|
|
176
|
+
minLength: 1,
|
|
177
|
+
description: "Container Drive file id for a bound script.",
|
|
178
|
+
})),
|
|
179
|
+
}, { additionalProperties: false }),
|
|
131
180
|
async execute(input, ctx) {
|
|
132
181
|
const payload = { title: input.title };
|
|
133
182
|
if (input.parentId)
|
|
@@ -137,24 +186,26 @@ export default function googleAppsScript(rl) {
|
|
|
137
186
|
},
|
|
138
187
|
});
|
|
139
188
|
rl.registerAction("version.create", {
|
|
189
|
+
access: "write",
|
|
140
190
|
description: "Create an immutable version of the project (needed before deploying).",
|
|
141
|
-
inputSchema: {
|
|
142
|
-
scriptId:
|
|
143
|
-
description:
|
|
144
|
-
},
|
|
191
|
+
inputSchema: t.Object({
|
|
192
|
+
scriptId: Id,
|
|
193
|
+
description: t.Optional(t.String()),
|
|
194
|
+
}, { additionalProperties: false }),
|
|
145
195
|
async execute(input, ctx) {
|
|
146
196
|
const res = await call(ctx, "POST", `${SCRIPT_API}/projects/${input.scriptId}/versions`, { description: input.description || "" });
|
|
147
197
|
return { scriptId: input.scriptId, versionNumber: res.versionNumber, description: res.description };
|
|
148
198
|
},
|
|
149
199
|
});
|
|
150
200
|
rl.registerAction("deployment.create", {
|
|
201
|
+
access: "write",
|
|
151
202
|
description: "Deploy a version. For function.run, deploy with an API-executable manifest (executionApi access).",
|
|
152
|
-
inputSchema: {
|
|
153
|
-
scriptId:
|
|
154
|
-
versionNumber:
|
|
155
|
-
description:
|
|
156
|
-
manifestFileName: {
|
|
157
|
-
},
|
|
203
|
+
inputSchema: t.Object({
|
|
204
|
+
scriptId: Id,
|
|
205
|
+
versionNumber: PositiveInteger,
|
|
206
|
+
description: t.Optional(t.String()),
|
|
207
|
+
manifestFileName: t.Optional(t.String({ minLength: 1, description: "Defaults to 'appsscript'." })),
|
|
208
|
+
}, { additionalProperties: false }),
|
|
158
209
|
async execute(input, ctx) {
|
|
159
210
|
const res = await call(ctx, "POST", `${SCRIPT_API}/projects/${input.scriptId}/deployments`, {
|
|
160
211
|
versionNumber: input.versionNumber,
|
|
@@ -165,13 +216,16 @@ export default function googleAppsScript(rl) {
|
|
|
165
216
|
},
|
|
166
217
|
});
|
|
167
218
|
rl.registerAction("function.run", {
|
|
219
|
+
access: "write",
|
|
168
220
|
description: "Run a function via scripts.run. Requires the project linked to a standard GCP project, the Apps Script API enabled, and an API-executable deployment (or devMode for the owner).",
|
|
169
|
-
inputSchema: {
|
|
170
|
-
scriptId:
|
|
171
|
-
functionName:
|
|
172
|
-
parameters:
|
|
173
|
-
devMode:
|
|
174
|
-
|
|
221
|
+
inputSchema: t.Object({
|
|
222
|
+
scriptId: Id,
|
|
223
|
+
functionName: NonEmptyString,
|
|
224
|
+
parameters: t.Optional(t.Array(jsonValueSchema)),
|
|
225
|
+
devMode: t.Optional(t.Boolean({
|
|
226
|
+
description: "Run latest saved code (owner only). Default true.",
|
|
227
|
+
})),
|
|
228
|
+
}, { additionalProperties: false }),
|
|
175
229
|
async execute(input, ctx) {
|
|
176
230
|
const res = await call(ctx, "POST", `${SCRIPT_API}/scripts/${input.scriptId}:run`, {
|
|
177
231
|
function: input.functionName,
|
|
@@ -186,11 +240,12 @@ export default function googleAppsScript(rl) {
|
|
|
186
240
|
},
|
|
187
241
|
});
|
|
188
242
|
rl.registerAction("process.list", {
|
|
243
|
+
access: "read",
|
|
189
244
|
description: "Recent executions for a project (status, function, times) — a log view.",
|
|
190
|
-
inputSchema: {
|
|
191
|
-
scriptId:
|
|
192
|
-
pageSize: {
|
|
193
|
-
},
|
|
245
|
+
inputSchema: t.Object({
|
|
246
|
+
scriptId: Id,
|
|
247
|
+
pageSize: t.Optional(t.Integer({ minimum: 1, maximum: 50, description: "Default 20." })),
|
|
248
|
+
}, { additionalProperties: false }),
|
|
194
249
|
async execute(input, ctx) {
|
|
195
250
|
const params = new URLSearchParams({
|
|
196
251
|
"userProcessFilter.scriptId": input.scriptId,
|