@rnsk/toolkits 0.0.2 → 0.0.4
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/README.md +104 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.js +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/toolkits/github/tools/Actions/get-workflow-job.d.ts +3 -3
- package/dist/toolkits/github/tools/Actions/list-artifacts.d.ts +1 -1
- package/dist/toolkits/github/tools/Actions/list-workflow-jobs.d.ts +4 -4
- package/dist/toolkits/github/tools/Actions/list-workflow-run-artifacts.d.ts +1 -1
- package/dist/toolkits/github/tools/Activity/list-notifications.d.ts +2 -2
- package/dist/toolkits/github/tools/Activity/list-public-events.d.ts +1 -1
- package/dist/toolkits/github/tools/Activity/list-repo-events.d.ts +1 -1
- package/dist/toolkits/github/tools/Activity/list-user-events.d.ts +1 -1
- package/dist/toolkits/github/tools/Apps/list-installations.d.ts +1 -1
- package/dist/toolkits/github/tools/Checks/create-check-run.d.ts +5 -5
- package/dist/toolkits/github/tools/Checks/create-check-suite.d.ts +2 -2
- package/dist/toolkits/github/tools/Checks/get-check-run.d.ts +2 -2
- package/dist/toolkits/github/tools/Checks/get-check-suite.d.ts +2 -2
- package/dist/toolkits/github/tools/Checks/list-check-runs.d.ts +4 -4
- package/dist/toolkits/github/tools/Checks/update-check-run.d.ts +4 -4
- package/dist/toolkits/github/tools/CodeScanning/list-alerts.d.ts +2 -2
- package/dist/toolkits/github/tools/CodeScanning/update-alert.d.ts +1 -1
- package/dist/toolkits/github/tools/Collaborators/add-collaborator.d.ts +1 -1
- package/dist/toolkits/github/tools/Collaborators/check-collaborator.d.ts +1 -1
- package/dist/toolkits/github/tools/Collaborators/list-collaborators.d.ts +1 -1
- package/dist/toolkits/github/tools/Collaborators/remove-collaborator.d.ts +1 -1
- package/dist/toolkits/github/tools/Commits/compare-commits.d.ts +2 -2
- package/dist/toolkits/github/tools/Commits/get-commit.d.ts +2 -2
- package/dist/toolkits/github/tools/Commits/list-commits.d.ts +1 -1
- package/dist/toolkits/github/tools/Commits/list-pull-requests-associated-with-commit.d.ts +2 -2
- package/dist/toolkits/github/tools/Dependabot/list-alerts.d.ts +1 -1
- package/dist/toolkits/github/tools/Dependabot/update-alert.d.ts +1 -1
- package/dist/toolkits/github/tools/DeployKeys/list-deploy-keys.d.ts +1 -1
- package/dist/toolkits/github/tools/Deployments/create-deployment.d.ts +1 -1
- package/dist/toolkits/github/tools/Deployments/list-deployments.d.ts +1 -1
- package/dist/toolkits/github/tools/Environments/list-environments.d.ts +1 -1
- package/dist/toolkits/github/tools/Files/create-or-update-file.d.ts +1 -1
- package/dist/toolkits/github/tools/Gists/create-gist.d.ts +1 -1
- package/dist/toolkits/github/tools/Git/create-blob.d.ts +1 -1
- package/dist/toolkits/github/tools/Git/create-tree.d.ts +1 -1
- package/dist/toolkits/github/tools/Issues/add-issue-assignees.d.ts +1 -1
- package/dist/toolkits/github/tools/Issues/add-issue-labels.d.ts +1 -1
- package/dist/toolkits/github/tools/Issues/list-authenticated-user-issues.d.ts +4 -4
- package/dist/toolkits/github/tools/Issues/list-issue-comments.d.ts +1 -1
- package/dist/toolkits/github/tools/Issues/list-org-issues.d.ts +4 -4
- package/dist/toolkits/github/tools/Issues/list-repo-issues.d.ts +2 -2
- package/dist/toolkits/github/tools/Issues/list-user-account-issues.d.ts +4 -4
- package/dist/toolkits/github/tools/Organizations/get-org-membership.d.ts +1 -1
- package/dist/toolkits/github/tools/Organizations/list-org-members.d.ts +1 -1
- package/dist/toolkits/github/tools/Organizations/list-org-repositories.d.ts +2 -2
- package/dist/toolkits/github/tools/Organizations/list-user-organizations.d.ts +1 -1
- package/dist/toolkits/github/tools/Organizations/update-organization.d.ts +1 -1
- package/dist/toolkits/github/tools/PRs/create-pull-request-review.d.ts +1 -1
- package/dist/toolkits/github/tools/PRs/list-pull-request-files.d.ts +1 -1
- package/dist/toolkits/github/tools/PRs/list-pull-requests.d.ts +1 -1
- package/dist/toolkits/github/tools/Projects/list-org-projects.d.ts +1 -1
- package/dist/toolkits/github/tools/Projects/list-project-columns.d.ts +1 -1
- package/dist/toolkits/github/tools/Projects/list-repo-projects.d.ts +1 -1
- package/dist/toolkits/github/tools/Projects/update-project.d.ts +1 -1
- package/dist/toolkits/github/tools/Reactions/create-commit-comment-reaction.d.ts +1 -1
- package/dist/toolkits/github/tools/Reactions/create-issue-reaction.d.ts +1 -1
- package/dist/toolkits/github/tools/Reactions/list-commit-comment-reactions.d.ts +1 -1
- package/dist/toolkits/github/tools/Reactions/list-issue-reactions.d.ts +1 -1
- package/dist/toolkits/github/tools/Reactions/list-pr-comment-reactions.d.ts +1 -1
- package/dist/toolkits/github/tools/Releases/list-releases.d.ts +1 -1
- package/dist/toolkits/github/tools/Repos/get-repo-contributors.d.ts +1 -1
- package/dist/toolkits/github/tools/Repos/list-branches.d.ts +1 -1
- package/dist/toolkits/github/tools/Repos/list-repos.d.ts +2 -2
- package/dist/toolkits/github/tools/Repos/watch-repo.d.ts +1 -1
- package/dist/toolkits/github/tools/Search/search-repos.d.ts +1 -1
- package/dist/toolkits/github/tools/SecretScanning/list-alerts.d.ts +1 -1
- package/dist/toolkits/github/tools/SecretScanning/update-alert.d.ts +1 -1
- package/dist/toolkits/github/tools/SecurityAdvisories/create-repository-advisory.d.ts +1 -1
- package/dist/toolkits/github/tools/SecurityAdvisories/get-repository-advisory.d.ts +1 -1
- package/dist/toolkits/github/tools/SecurityAdvisories/list-global-advisories.d.ts +1 -1
- package/dist/toolkits/github/tools/SecurityAdvisories/list-repository-advisories.d.ts +2 -2
- package/dist/toolkits/github/tools/Stars/list-stargazers.d.ts +1 -1
- package/dist/toolkits/github/tools/Stars/list-starred-repos.d.ts +1 -1
- package/dist/toolkits/github/tools/Statuses/create-commit-status.d.ts +1 -1
- package/dist/toolkits/github/tools/Statuses/list-commit-statuses.d.ts +1 -1
- package/dist/toolkits/github/tools/Teams/list-team-members.d.ts +1 -1
- package/dist/toolkits/github/tools/Teams/list-team-repos.d.ts +1 -1
- package/dist/toolkits/github/tools/Teams/list-teams.d.ts +1 -1
- package/dist/toolkits/github/tools/Users/get-user-context.d.ts +1 -1
- package/dist/toolkits/github/tools/Users/update-authenticated-user.d.ts +1 -1
- package/dist/toolkits/github/tools/Webhooks/create-repo-webhook.d.ts +1 -1
- package/dist/toolkits/github/tools/Webhooks/list-repo-webhooks.d.ts +1 -1
- package/dist/toolkits/github/tools/Webhooks/update-repo-webhook.d.ts +1 -1
- package/dist/toolkits/github/tools/Workflows/list-workflow-runs.d.ts +2 -2
- package/dist/toolkits/github/tools/Workflows/list-workflows.d.ts +1 -1
- package/dist/toolkits/github/tools/index.d.ts +4859 -175
- package/dist/toolkits/github/tools/index.js +342 -342
- package/dist/toolkits/gmail/icon.js +14 -14
- package/dist/toolkits/gmail/manifest.js +78 -5
- package/dist/toolkits/gmail/tools/create-draft.d.ts +34 -0
- package/dist/toolkits/gmail/tools/create-draft.js +60 -0
- package/dist/toolkits/gmail/tools/delete-draft.d.ts +23 -0
- package/dist/toolkits/gmail/tools/delete-draft.js +34 -0
- package/dist/toolkits/gmail/tools/get-draft.d.ts +32 -0
- package/dist/toolkits/gmail/tools/get-draft.js +36 -0
- package/dist/toolkits/gmail/tools/get-message.d.ts +12 -12
- package/dist/toolkits/gmail/tools/get-message.js +3 -24
- package/dist/toolkits/gmail/tools/get-thread.d.ts +29 -0
- package/dist/toolkits/gmail/tools/get-thread.js +39 -0
- package/dist/toolkits/gmail/tools/index.d.ts +17 -0
- package/dist/toolkits/gmail/tools/index.js +17 -0
- package/dist/toolkits/gmail/tools/list-drafts.d.ts +28 -0
- package/dist/toolkits/gmail/tools/list-drafts.js +43 -0
- package/dist/toolkits/gmail/tools/list-labels.d.ts +20 -0
- package/dist/toolkits/gmail/tools/list-labels.js +46 -0
- package/dist/toolkits/gmail/tools/list-threads.d.ts +28 -0
- package/dist/toolkits/gmail/tools/list-threads.js +43 -0
- package/dist/toolkits/gmail/tools/modify-message-labels.d.ts +31 -0
- package/dist/toolkits/gmail/tools/modify-message-labels.js +44 -0
- package/dist/toolkits/gmail/tools/reply-to-thread.d.ts +33 -0
- package/dist/toolkits/gmail/tools/reply-to-thread.js +58 -0
- package/dist/toolkits/gmail/tools/send-draft.d.ts +29 -0
- package/dist/toolkits/gmail/tools/send-draft.js +41 -0
- package/dist/toolkits/gmail/tools/send-message.d.ts +4 -1
- package/dist/toolkits/gmail/tools/send-message.js +18 -16
- package/dist/toolkits/gmail/tools/trash-message.d.ts +29 -0
- package/dist/toolkits/gmail/tools/trash-message.js +37 -0
- package/dist/toolkits/gmail/tools/untrash-message.d.ts +29 -0
- package/dist/toolkits/gmail/tools/untrash-message.js +37 -0
- package/dist/toolkits/gmail/tools/utils.d.ts +41 -0
- package/dist/toolkits/gmail/tools/utils.js +97 -0
- package/dist/toolkits/google-calendar/manifest.js +1 -1
- package/dist/toolkits/google-calendar/tools/delete-event.d.ts +27 -0
- package/dist/toolkits/google-calendar/tools/delete-event.js +38 -0
- package/dist/toolkits/google-calendar/tools/get-event.d.ts +24 -0
- package/dist/toolkits/google-calendar/tools/get-event.js +37 -0
- package/dist/toolkits/google-calendar/tools/index.d.ts +181 -3
- package/dist/toolkits/google-calendar/tools/index.js +31 -2
- package/dist/toolkits/google-calendar/tools/search-events.d.ts +27 -0
- package/dist/toolkits/google-calendar/tools/search-events.js +49 -0
- package/dist/toolkits/google-calendar/tools/update-event.d.ts +29 -0
- package/dist/toolkits/google-calendar/tools/update-event.js +56 -0
- package/dist/toolkits/google-sheets/manifest.js +2 -2
- package/dist/toolkits/google-sheets/tools/append-values.d.ts +41 -0
- package/dist/toolkits/google-sheets/tools/append-values.js +51 -0
- package/dist/toolkits/google-sheets/tools/clear-values.d.ts +27 -0
- package/dist/toolkits/google-sheets/tools/clear-values.js +41 -0
- package/dist/toolkits/google-sheets/tools/create-spreadsheet.d.ts +33 -0
- package/dist/toolkits/google-sheets/tools/create-spreadsheet.js +59 -0
- package/dist/toolkits/google-sheets/tools/index.d.ts +205 -7
- package/dist/toolkits/google-sheets/tools/index.js +39 -4
- package/dist/toolkits/google-sheets/tools/update-values.d.ts +38 -0
- package/dist/toolkits/google-sheets/tools/update-values.js +50 -0
- package/dist/toolkits/linear/manifest.js +35 -0
- package/dist/toolkits/linear/tools/add-comment.d.ts +6 -0
- package/dist/toolkits/linear/tools/add-comment.js +52 -0
- package/dist/toolkits/linear/tools/get-issue.d.ts +6 -0
- package/dist/toolkits/linear/tools/get-issue.js +117 -0
- package/dist/toolkits/linear/tools/list-projects.d.ts +4 -0
- package/dist/toolkits/linear/tools/list-projects.js +46 -0
- package/dist/toolkits/linear/tools/list-workflow-states.d.ts +26 -0
- package/dist/toolkits/linear/tools/list-workflow-states.js +59 -0
- package/dist/toolkits/linear/tools/update-issue.d.ts +11 -0
- package/dist/toolkits/linear/tools/update-issue.js +78 -0
- package/dist/toolkits/notion/tools/append-block-children.d.ts +1 -1
- package/dist/toolkits/notion/tools/index.d.ts +105 -12
- package/dist/toolkits/notion/tools/index.js +8 -8
- package/dist/toolkits/notion/tools/query-database.d.ts +1 -1
- package/package.json +5 -7
- package/dist/runtime/credentials.d.ts +0 -28
- package/dist/runtime/credentials.js +0 -15
- package/dist/runtime/index.d.ts +0 -5
- package/dist/runtime/index.js +0 -5
- package/dist/runtime/meta-tools.d.ts +0 -101
- package/dist/runtime/meta-tools.js +0 -250
- package/dist/runtime/registry.d.ts +0 -20
- package/dist/runtime/registry.js +0 -35
- /package/dist/{runtime → core}/schema-helpers.d.ts +0 -0
- /package/dist/{runtime → core}/schema-helpers.js +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export declare const appendValues: import("ai").Tool<{
|
|
2
|
+
values: (string | number | boolean | null)[][];
|
|
3
|
+
range: string;
|
|
4
|
+
googleSheetsToken: string;
|
|
5
|
+
spreadsheetId: string;
|
|
6
|
+
valueInputOption: "RAW" | "USER_ENTERED";
|
|
7
|
+
}, {
|
|
8
|
+
error: string;
|
|
9
|
+
details: any;
|
|
10
|
+
success?: undefined;
|
|
11
|
+
spreadsheetId?: undefined;
|
|
12
|
+
tableRange?: undefined;
|
|
13
|
+
updatedRange?: undefined;
|
|
14
|
+
updatedRows?: undefined;
|
|
15
|
+
updatedColumns?: undefined;
|
|
16
|
+
updatedCells?: undefined;
|
|
17
|
+
message?: undefined;
|
|
18
|
+
} | {
|
|
19
|
+
success: boolean;
|
|
20
|
+
spreadsheetId: any;
|
|
21
|
+
tableRange: any;
|
|
22
|
+
updatedRange: any;
|
|
23
|
+
updatedRows: any;
|
|
24
|
+
updatedColumns: any;
|
|
25
|
+
updatedCells: any;
|
|
26
|
+
error?: undefined;
|
|
27
|
+
details?: undefined;
|
|
28
|
+
message?: undefined;
|
|
29
|
+
} | {
|
|
30
|
+
error: string;
|
|
31
|
+
message: string;
|
|
32
|
+
details?: undefined;
|
|
33
|
+
success?: undefined;
|
|
34
|
+
spreadsheetId?: undefined;
|
|
35
|
+
tableRange?: undefined;
|
|
36
|
+
updatedRange?: undefined;
|
|
37
|
+
updatedRows?: undefined;
|
|
38
|
+
updatedColumns?: undefined;
|
|
39
|
+
updatedCells?: undefined;
|
|
40
|
+
}>;
|
|
41
|
+
//# sourceMappingURL=append-values.d.ts.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export const appendValues = tool({
|
|
5
|
+
description: 'Append rows of values to a Google Sheets spreadsheet range (e.g., adding new rows at the bottom of a table).',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
googleSheetsToken: z.string().describe('The Google Sheets access token'),
|
|
8
|
+
spreadsheetId: z.string().describe('The ID of the spreadsheet'),
|
|
9
|
+
range: z.string().describe('The A1 notation of a range where values should be appended (e.g., "Sheet1!A:E")'),
|
|
10
|
+
values: z.array(z.array(z.union([z.string(), z.number(), z.boolean(), z.null()]))).describe('A 2D array of row data to append (e.g., [["Alice", 30, true], ["Bob", 25, false]])'),
|
|
11
|
+
valueInputOption: z.enum(['RAW', 'USER_ENTERED']).optional().default('USER_ENTERED').describe('How the input data should be interpreted. USER_ENTERED parses values like user typing into UI.'),
|
|
12
|
+
}),
|
|
13
|
+
execute: async ({ googleSheetsToken, spreadsheetId, range, values, valueInputOption = 'USER_ENTERED' }) => {
|
|
14
|
+
try {
|
|
15
|
+
const url = `https://sheets.googleapis.com/v4/spreadsheets/${spreadsheetId}/values/${encodeURIComponent(range)}:append?valueInputOption=${valueInputOption}`;
|
|
16
|
+
const response = await fetch(url, {
|
|
17
|
+
method: 'POST',
|
|
18
|
+
headers: {
|
|
19
|
+
Authorization: `Bearer ${googleSheetsToken}`,
|
|
20
|
+
'Content-Type': 'application/json',
|
|
21
|
+
},
|
|
22
|
+
body: JSON.stringify({
|
|
23
|
+
range,
|
|
24
|
+
majorDimension: 'ROWS',
|
|
25
|
+
values,
|
|
26
|
+
}),
|
|
27
|
+
});
|
|
28
|
+
if (!response.ok) {
|
|
29
|
+
const error = await response.json();
|
|
30
|
+
return { error: 'Failed to append values', details: error };
|
|
31
|
+
}
|
|
32
|
+
const data = await response.json();
|
|
33
|
+
return {
|
|
34
|
+
success: true,
|
|
35
|
+
spreadsheetId: data.spreadsheetId,
|
|
36
|
+
tableRange: data.tableRange,
|
|
37
|
+
updatedRange: data.updates?.updatedRange,
|
|
38
|
+
updatedRows: data.updates?.updatedRows,
|
|
39
|
+
updatedColumns: data.updates?.updatedColumns,
|
|
40
|
+
updatedCells: data.updates?.updatedCells,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
return {
|
|
45
|
+
error: 'Error appending values',
|
|
46
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=append-values.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const clearValues: import("ai").Tool<{
|
|
2
|
+
range: string;
|
|
3
|
+
googleSheetsToken: string;
|
|
4
|
+
spreadsheetId: string;
|
|
5
|
+
}, {
|
|
6
|
+
error: string;
|
|
7
|
+
details: any;
|
|
8
|
+
success?: undefined;
|
|
9
|
+
spreadsheetId?: undefined;
|
|
10
|
+
clearedRange?: undefined;
|
|
11
|
+
message?: undefined;
|
|
12
|
+
} | {
|
|
13
|
+
success: boolean;
|
|
14
|
+
spreadsheetId: any;
|
|
15
|
+
clearedRange: any;
|
|
16
|
+
error?: undefined;
|
|
17
|
+
details?: undefined;
|
|
18
|
+
message?: undefined;
|
|
19
|
+
} | {
|
|
20
|
+
error: string;
|
|
21
|
+
message: string;
|
|
22
|
+
details?: undefined;
|
|
23
|
+
success?: undefined;
|
|
24
|
+
spreadsheetId?: undefined;
|
|
25
|
+
clearedRange?: undefined;
|
|
26
|
+
}>;
|
|
27
|
+
//# sourceMappingURL=clear-values.d.ts.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export const clearValues = tool({
|
|
5
|
+
description: 'Clear values from a specific range in a Google Sheets spreadsheet, leaving cell formatting intact.',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
googleSheetsToken: z.string().describe('The Google Sheets access token'),
|
|
8
|
+
spreadsheetId: z.string().describe('The ID of the spreadsheet'),
|
|
9
|
+
range: z.string().describe('The A1 notation of the values to clear (e.g., "Sheet1!A1:B10")'),
|
|
10
|
+
}),
|
|
11
|
+
execute: async ({ googleSheetsToken, spreadsheetId, range }) => {
|
|
12
|
+
try {
|
|
13
|
+
const url = `https://sheets.googleapis.com/v4/spreadsheets/${spreadsheetId}/values/${encodeURIComponent(range)}:clear`;
|
|
14
|
+
const response = await fetch(url, {
|
|
15
|
+
method: 'POST',
|
|
16
|
+
headers: {
|
|
17
|
+
Authorization: `Bearer ${googleSheetsToken}`,
|
|
18
|
+
'Content-Type': 'application/json',
|
|
19
|
+
},
|
|
20
|
+
body: JSON.stringify({}),
|
|
21
|
+
});
|
|
22
|
+
if (!response.ok) {
|
|
23
|
+
const error = await response.json();
|
|
24
|
+
return { error: 'Failed to clear values', details: error };
|
|
25
|
+
}
|
|
26
|
+
const data = await response.json();
|
|
27
|
+
return {
|
|
28
|
+
success: true,
|
|
29
|
+
spreadsheetId: data.spreadsheetId,
|
|
30
|
+
clearedRange: data.clearedRange,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
return {
|
|
35
|
+
error: 'Error clearing values',
|
|
36
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=clear-values.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare const createSpreadsheet: import("ai").Tool<{
|
|
2
|
+
title: string;
|
|
3
|
+
googleSheetsToken: string;
|
|
4
|
+
sheetTitles?: string[] | undefined;
|
|
5
|
+
}, {
|
|
6
|
+
error: string;
|
|
7
|
+
details: any;
|
|
8
|
+
success?: undefined;
|
|
9
|
+
spreadsheetId?: undefined;
|
|
10
|
+
spreadsheetUrl?: undefined;
|
|
11
|
+
title?: undefined;
|
|
12
|
+
sheets?: undefined;
|
|
13
|
+
message?: undefined;
|
|
14
|
+
} | {
|
|
15
|
+
success: boolean;
|
|
16
|
+
spreadsheetId: any;
|
|
17
|
+
spreadsheetUrl: any;
|
|
18
|
+
title: any;
|
|
19
|
+
sheets: any;
|
|
20
|
+
error?: undefined;
|
|
21
|
+
details?: undefined;
|
|
22
|
+
message?: undefined;
|
|
23
|
+
} | {
|
|
24
|
+
error: string;
|
|
25
|
+
message: string;
|
|
26
|
+
details?: undefined;
|
|
27
|
+
success?: undefined;
|
|
28
|
+
spreadsheetId?: undefined;
|
|
29
|
+
spreadsheetUrl?: undefined;
|
|
30
|
+
title?: undefined;
|
|
31
|
+
sheets?: undefined;
|
|
32
|
+
}>;
|
|
33
|
+
//# sourceMappingURL=create-spreadsheet.d.ts.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export const createSpreadsheet = tool({
|
|
5
|
+
description: 'Create a new Google Sheets spreadsheet with a specified title and optional sheet tabs.',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
googleSheetsToken: z.string().describe('The Google Sheets access token'),
|
|
8
|
+
title: z.string().describe('The title of the new spreadsheet'),
|
|
9
|
+
sheetTitles: z.array(z.string()).optional().describe('Optional list of initial sheet tab titles to create (e.g., ["Summary", "Data"])'),
|
|
10
|
+
}),
|
|
11
|
+
execute: async ({ googleSheetsToken, title, sheetTitles }) => {
|
|
12
|
+
try {
|
|
13
|
+
const url = 'https://sheets.googleapis.com/v4/spreadsheets';
|
|
14
|
+
const payload = {
|
|
15
|
+
properties: {
|
|
16
|
+
title,
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
if (sheetTitles && sheetTitles.length > 0) {
|
|
20
|
+
payload.sheets = sheetTitles.map((sheetTitle) => ({
|
|
21
|
+
properties: {
|
|
22
|
+
title: sheetTitle,
|
|
23
|
+
},
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
const response = await fetch(url, {
|
|
27
|
+
method: 'POST',
|
|
28
|
+
headers: {
|
|
29
|
+
Authorization: `Bearer ${googleSheetsToken}`,
|
|
30
|
+
'Content-Type': 'application/json',
|
|
31
|
+
},
|
|
32
|
+
body: JSON.stringify(payload),
|
|
33
|
+
});
|
|
34
|
+
if (!response.ok) {
|
|
35
|
+
const error = await response.json();
|
|
36
|
+
return { error: 'Failed to create spreadsheet', details: error };
|
|
37
|
+
}
|
|
38
|
+
const data = await response.json();
|
|
39
|
+
return {
|
|
40
|
+
success: true,
|
|
41
|
+
spreadsheetId: data.spreadsheetId,
|
|
42
|
+
spreadsheetUrl: data.spreadsheetUrl,
|
|
43
|
+
title: data.properties?.title,
|
|
44
|
+
sheets: data.sheets?.map((s) => ({
|
|
45
|
+
sheetId: s.properties?.sheetId,
|
|
46
|
+
title: s.properties?.title,
|
|
47
|
+
index: s.properties?.index,
|
|
48
|
+
})),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return {
|
|
53
|
+
error: 'Error creating spreadsheet',
|
|
54
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=create-spreadsheet.js.map
|
|
@@ -1,11 +1,209 @@
|
|
|
1
|
-
import { listSpreadsheets } from './list-spreadsheets';
|
|
2
|
-
import { getSpreadsheet } from './get-spreadsheet';
|
|
3
|
-
import { getValues } from './get-values';
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { listSpreadsheets } from './list-spreadsheets.js';
|
|
2
|
+
import { getSpreadsheet } from './get-spreadsheet.js';
|
|
3
|
+
import { getValues } from './get-values.js';
|
|
4
|
+
import { appendValues } from './append-values.js';
|
|
5
|
+
import { updateValues } from './update-values.js';
|
|
6
|
+
import { clearValues } from './clear-values.js';
|
|
7
|
+
import { createSpreadsheet } from './create-spreadsheet.js';
|
|
8
|
+
export { listSpreadsheets, getSpreadsheet, getValues, appendValues, updateValues, clearValues, createSpreadsheet, };
|
|
9
|
+
export declare const googleSheetsTools: ({
|
|
6
10
|
name: string;
|
|
7
11
|
description: string;
|
|
8
|
-
tool:
|
|
12
|
+
tool: import("ai").Tool<{
|
|
13
|
+
googleSheetsToken: string;
|
|
14
|
+
pageSize: number;
|
|
15
|
+
q?: string | undefined;
|
|
16
|
+
}, {
|
|
17
|
+
error: string;
|
|
18
|
+
details: any;
|
|
19
|
+
spreadsheets?: undefined;
|
|
20
|
+
message?: undefined;
|
|
21
|
+
} | {
|
|
22
|
+
spreadsheets: any;
|
|
23
|
+
error?: undefined;
|
|
24
|
+
details?: undefined;
|
|
25
|
+
message?: undefined;
|
|
26
|
+
} | {
|
|
27
|
+
error: string;
|
|
28
|
+
message: string;
|
|
29
|
+
details?: undefined;
|
|
30
|
+
spreadsheets?: undefined;
|
|
31
|
+
}>;
|
|
9
32
|
requiredAuth: "googleSheetsToken";
|
|
10
|
-
|
|
33
|
+
scope: "read";
|
|
34
|
+
} | {
|
|
35
|
+
name: string;
|
|
36
|
+
description: string;
|
|
37
|
+
tool: import("ai").Tool<{
|
|
38
|
+
googleSheetsToken: string;
|
|
39
|
+
spreadsheetId: string;
|
|
40
|
+
}, any>;
|
|
41
|
+
requiredAuth: "googleSheetsToken";
|
|
42
|
+
scope: "read";
|
|
43
|
+
} | {
|
|
44
|
+
name: string;
|
|
45
|
+
description: string;
|
|
46
|
+
tool: import("ai").Tool<{
|
|
47
|
+
range: string;
|
|
48
|
+
googleSheetsToken: string;
|
|
49
|
+
spreadsheetId: string;
|
|
50
|
+
}, any>;
|
|
51
|
+
requiredAuth: "googleSheetsToken";
|
|
52
|
+
scope: "read";
|
|
53
|
+
} | {
|
|
54
|
+
name: string;
|
|
55
|
+
description: string;
|
|
56
|
+
tool: import("ai").Tool<{
|
|
57
|
+
values: (string | number | boolean | null)[][];
|
|
58
|
+
range: string;
|
|
59
|
+
googleSheetsToken: string;
|
|
60
|
+
spreadsheetId: string;
|
|
61
|
+
valueInputOption: "RAW" | "USER_ENTERED";
|
|
62
|
+
}, {
|
|
63
|
+
error: string;
|
|
64
|
+
details: any;
|
|
65
|
+
success?: undefined;
|
|
66
|
+
spreadsheetId?: undefined;
|
|
67
|
+
tableRange?: undefined;
|
|
68
|
+
updatedRange?: undefined;
|
|
69
|
+
updatedRows?: undefined;
|
|
70
|
+
updatedColumns?: undefined;
|
|
71
|
+
updatedCells?: undefined;
|
|
72
|
+
message?: undefined;
|
|
73
|
+
} | {
|
|
74
|
+
success: boolean;
|
|
75
|
+
spreadsheetId: any;
|
|
76
|
+
tableRange: any;
|
|
77
|
+
updatedRange: any;
|
|
78
|
+
updatedRows: any;
|
|
79
|
+
updatedColumns: any;
|
|
80
|
+
updatedCells: any;
|
|
81
|
+
error?: undefined;
|
|
82
|
+
details?: undefined;
|
|
83
|
+
message?: undefined;
|
|
84
|
+
} | {
|
|
85
|
+
error: string;
|
|
86
|
+
message: string;
|
|
87
|
+
details?: undefined;
|
|
88
|
+
success?: undefined;
|
|
89
|
+
spreadsheetId?: undefined;
|
|
90
|
+
tableRange?: undefined;
|
|
91
|
+
updatedRange?: undefined;
|
|
92
|
+
updatedRows?: undefined;
|
|
93
|
+
updatedColumns?: undefined;
|
|
94
|
+
updatedCells?: undefined;
|
|
95
|
+
}>;
|
|
96
|
+
requiredAuth: "googleSheetsToken";
|
|
97
|
+
scope: "write";
|
|
98
|
+
} | {
|
|
99
|
+
name: string;
|
|
100
|
+
description: string;
|
|
101
|
+
tool: import("ai").Tool<{
|
|
102
|
+
values: (string | number | boolean | null)[][];
|
|
103
|
+
range: string;
|
|
104
|
+
googleSheetsToken: string;
|
|
105
|
+
spreadsheetId: string;
|
|
106
|
+
valueInputOption: "RAW" | "USER_ENTERED";
|
|
107
|
+
}, {
|
|
108
|
+
error: string;
|
|
109
|
+
details: any;
|
|
110
|
+
success?: undefined;
|
|
111
|
+
spreadsheetId?: undefined;
|
|
112
|
+
updatedRange?: undefined;
|
|
113
|
+
updatedRows?: undefined;
|
|
114
|
+
updatedColumns?: undefined;
|
|
115
|
+
updatedCells?: undefined;
|
|
116
|
+
message?: undefined;
|
|
117
|
+
} | {
|
|
118
|
+
success: boolean;
|
|
119
|
+
spreadsheetId: any;
|
|
120
|
+
updatedRange: any;
|
|
121
|
+
updatedRows: any;
|
|
122
|
+
updatedColumns: any;
|
|
123
|
+
updatedCells: any;
|
|
124
|
+
error?: undefined;
|
|
125
|
+
details?: undefined;
|
|
126
|
+
message?: undefined;
|
|
127
|
+
} | {
|
|
128
|
+
error: string;
|
|
129
|
+
message: string;
|
|
130
|
+
details?: undefined;
|
|
131
|
+
success?: undefined;
|
|
132
|
+
spreadsheetId?: undefined;
|
|
133
|
+
updatedRange?: undefined;
|
|
134
|
+
updatedRows?: undefined;
|
|
135
|
+
updatedColumns?: undefined;
|
|
136
|
+
updatedCells?: undefined;
|
|
137
|
+
}>;
|
|
138
|
+
requiredAuth: "googleSheetsToken";
|
|
139
|
+
scope: "write";
|
|
140
|
+
} | {
|
|
141
|
+
name: string;
|
|
142
|
+
description: string;
|
|
143
|
+
tool: import("ai").Tool<{
|
|
144
|
+
range: string;
|
|
145
|
+
googleSheetsToken: string;
|
|
146
|
+
spreadsheetId: string;
|
|
147
|
+
}, {
|
|
148
|
+
error: string;
|
|
149
|
+
details: any;
|
|
150
|
+
success?: undefined;
|
|
151
|
+
spreadsheetId?: undefined;
|
|
152
|
+
clearedRange?: undefined;
|
|
153
|
+
message?: undefined;
|
|
154
|
+
} | {
|
|
155
|
+
success: boolean;
|
|
156
|
+
spreadsheetId: any;
|
|
157
|
+
clearedRange: any;
|
|
158
|
+
error?: undefined;
|
|
159
|
+
details?: undefined;
|
|
160
|
+
message?: undefined;
|
|
161
|
+
} | {
|
|
162
|
+
error: string;
|
|
163
|
+
message: string;
|
|
164
|
+
details?: undefined;
|
|
165
|
+
success?: undefined;
|
|
166
|
+
spreadsheetId?: undefined;
|
|
167
|
+
clearedRange?: undefined;
|
|
168
|
+
}>;
|
|
169
|
+
requiredAuth: "googleSheetsToken";
|
|
170
|
+
scope: "delete";
|
|
171
|
+
} | {
|
|
172
|
+
name: string;
|
|
173
|
+
description: string;
|
|
174
|
+
tool: import("ai").Tool<{
|
|
175
|
+
title: string;
|
|
176
|
+
googleSheetsToken: string;
|
|
177
|
+
sheetTitles?: string[] | undefined;
|
|
178
|
+
}, {
|
|
179
|
+
error: string;
|
|
180
|
+
details: any;
|
|
181
|
+
success?: undefined;
|
|
182
|
+
spreadsheetId?: undefined;
|
|
183
|
+
spreadsheetUrl?: undefined;
|
|
184
|
+
title?: undefined;
|
|
185
|
+
sheets?: undefined;
|
|
186
|
+
message?: undefined;
|
|
187
|
+
} | {
|
|
188
|
+
success: boolean;
|
|
189
|
+
spreadsheetId: any;
|
|
190
|
+
spreadsheetUrl: any;
|
|
191
|
+
title: any;
|
|
192
|
+
sheets: any;
|
|
193
|
+
error?: undefined;
|
|
194
|
+
details?: undefined;
|
|
195
|
+
message?: undefined;
|
|
196
|
+
} | {
|
|
197
|
+
error: string;
|
|
198
|
+
message: string;
|
|
199
|
+
details?: undefined;
|
|
200
|
+
success?: undefined;
|
|
201
|
+
spreadsheetId?: undefined;
|
|
202
|
+
spreadsheetUrl?: undefined;
|
|
203
|
+
title?: undefined;
|
|
204
|
+
sheets?: undefined;
|
|
205
|
+
}>;
|
|
206
|
+
requiredAuth: "googleSheetsToken";
|
|
207
|
+
scope: "write";
|
|
208
|
+
})[];
|
|
11
209
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,26 +1,61 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
import { listSpreadsheets } from './list-spreadsheets';
|
|
3
|
-
import { getSpreadsheet } from './get-spreadsheet';
|
|
4
|
-
import { getValues } from './get-values';
|
|
5
|
-
|
|
2
|
+
import { listSpreadsheets } from './list-spreadsheets.js';
|
|
3
|
+
import { getSpreadsheet } from './get-spreadsheet.js';
|
|
4
|
+
import { getValues } from './get-values.js';
|
|
5
|
+
import { appendValues } from './append-values.js';
|
|
6
|
+
import { updateValues } from './update-values.js';
|
|
7
|
+
import { clearValues } from './clear-values.js';
|
|
8
|
+
import { createSpreadsheet } from './create-spreadsheet.js';
|
|
9
|
+
export { listSpreadsheets, getSpreadsheet, getValues, appendValues, updateValues, clearValues, createSpreadsheet, };
|
|
6
10
|
export const googleSheetsTools = [
|
|
7
11
|
{
|
|
8
12
|
name: 'googleSheetsListSpreadsheets',
|
|
9
13
|
description: 'List or search for Google Sheets spreadsheets in the user\'s Drive.',
|
|
10
14
|
tool: listSpreadsheets,
|
|
11
15
|
requiredAuth: 'googleSheetsToken',
|
|
16
|
+
scope: 'read',
|
|
12
17
|
},
|
|
13
18
|
{
|
|
14
19
|
name: 'googleSheetsGetSpreadsheet',
|
|
15
20
|
description: 'Get details and metadata of a specific Google Sheets spreadsheet by ID.',
|
|
16
21
|
tool: getSpreadsheet,
|
|
17
22
|
requiredAuth: 'googleSheetsToken',
|
|
23
|
+
scope: 'read',
|
|
18
24
|
},
|
|
19
25
|
{
|
|
20
26
|
name: 'googleSheetsGetValues',
|
|
21
27
|
description: 'Get values from a specific range in a Google Sheets spreadsheet.',
|
|
22
28
|
tool: getValues,
|
|
23
29
|
requiredAuth: 'googleSheetsToken',
|
|
30
|
+
scope: 'read',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'googleSheetsAppendValues',
|
|
34
|
+
description: 'Append rows of values to a Google Sheets spreadsheet range (e.g., adding new rows at the bottom of a table).',
|
|
35
|
+
tool: appendValues,
|
|
36
|
+
requiredAuth: 'googleSheetsToken',
|
|
37
|
+
scope: 'write',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'googleSheetsUpdateValues',
|
|
41
|
+
description: 'Update or overwrite values in a specific range of a Google Sheets spreadsheet.',
|
|
42
|
+
tool: updateValues,
|
|
43
|
+
requiredAuth: 'googleSheetsToken',
|
|
44
|
+
scope: 'write',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'googleSheetsClearValues',
|
|
48
|
+
description: 'Clear values from a specific range in a Google Sheets spreadsheet, leaving cell formatting intact.',
|
|
49
|
+
tool: clearValues,
|
|
50
|
+
requiredAuth: 'googleSheetsToken',
|
|
51
|
+
scope: 'delete',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'googleSheetsCreateSpreadsheet',
|
|
55
|
+
description: 'Create a new Google Sheets spreadsheet with a specified title and optional sheet tabs.',
|
|
56
|
+
tool: createSpreadsheet,
|
|
57
|
+
requiredAuth: 'googleSheetsToken',
|
|
58
|
+
scope: 'write',
|
|
24
59
|
},
|
|
25
60
|
];
|
|
26
61
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare const updateValues: import("ai").Tool<{
|
|
2
|
+
values: (string | number | boolean | null)[][];
|
|
3
|
+
range: string;
|
|
4
|
+
googleSheetsToken: string;
|
|
5
|
+
spreadsheetId: string;
|
|
6
|
+
valueInputOption: "RAW" | "USER_ENTERED";
|
|
7
|
+
}, {
|
|
8
|
+
error: string;
|
|
9
|
+
details: any;
|
|
10
|
+
success?: undefined;
|
|
11
|
+
spreadsheetId?: undefined;
|
|
12
|
+
updatedRange?: undefined;
|
|
13
|
+
updatedRows?: undefined;
|
|
14
|
+
updatedColumns?: undefined;
|
|
15
|
+
updatedCells?: undefined;
|
|
16
|
+
message?: undefined;
|
|
17
|
+
} | {
|
|
18
|
+
success: boolean;
|
|
19
|
+
spreadsheetId: any;
|
|
20
|
+
updatedRange: any;
|
|
21
|
+
updatedRows: any;
|
|
22
|
+
updatedColumns: any;
|
|
23
|
+
updatedCells: any;
|
|
24
|
+
error?: undefined;
|
|
25
|
+
details?: undefined;
|
|
26
|
+
message?: undefined;
|
|
27
|
+
} | {
|
|
28
|
+
error: string;
|
|
29
|
+
message: string;
|
|
30
|
+
details?: undefined;
|
|
31
|
+
success?: undefined;
|
|
32
|
+
spreadsheetId?: undefined;
|
|
33
|
+
updatedRange?: undefined;
|
|
34
|
+
updatedRows?: undefined;
|
|
35
|
+
updatedColumns?: undefined;
|
|
36
|
+
updatedCells?: undefined;
|
|
37
|
+
}>;
|
|
38
|
+
//# sourceMappingURL=update-values.d.ts.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export const updateValues = tool({
|
|
5
|
+
description: 'Update or overwrite values in a specific range of a Google Sheets spreadsheet.',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
googleSheetsToken: z.string().describe('The Google Sheets access token'),
|
|
8
|
+
spreadsheetId: z.string().describe('The ID of the spreadsheet'),
|
|
9
|
+
range: z.string().describe('The A1 notation of the range to update (e.g., "Sheet1!A1:B2")'),
|
|
10
|
+
values: z.array(z.array(z.union([z.string(), z.number(), z.boolean(), z.null()]))).describe('A 2D array of values to write (e.g., [["Name", "Score"], ["Alice", 95]])'),
|
|
11
|
+
valueInputOption: z.enum(['RAW', 'USER_ENTERED']).optional().default('USER_ENTERED').describe('How the input data should be interpreted. USER_ENTERED parses values like user typing into UI.'),
|
|
12
|
+
}),
|
|
13
|
+
execute: async ({ googleSheetsToken, spreadsheetId, range, values, valueInputOption = 'USER_ENTERED' }) => {
|
|
14
|
+
try {
|
|
15
|
+
const url = `https://sheets.googleapis.com/v4/spreadsheets/${spreadsheetId}/values/${encodeURIComponent(range)}?valueInputOption=${valueInputOption}`;
|
|
16
|
+
const response = await fetch(url, {
|
|
17
|
+
method: 'PUT',
|
|
18
|
+
headers: {
|
|
19
|
+
Authorization: `Bearer ${googleSheetsToken}`,
|
|
20
|
+
'Content-Type': 'application/json',
|
|
21
|
+
},
|
|
22
|
+
body: JSON.stringify({
|
|
23
|
+
range,
|
|
24
|
+
majorDimension: 'ROWS',
|
|
25
|
+
values,
|
|
26
|
+
}),
|
|
27
|
+
});
|
|
28
|
+
if (!response.ok) {
|
|
29
|
+
const error = await response.json();
|
|
30
|
+
return { error: 'Failed to update values', details: error };
|
|
31
|
+
}
|
|
32
|
+
const data = await response.json();
|
|
33
|
+
return {
|
|
34
|
+
success: true,
|
|
35
|
+
spreadsheetId: data.spreadsheetId,
|
|
36
|
+
updatedRange: data.updatedRange,
|
|
37
|
+
updatedRows: data.updatedRows,
|
|
38
|
+
updatedColumns: data.updatedColumns,
|
|
39
|
+
updatedCells: data.updatedCells,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
return {
|
|
44
|
+
error: 'Error updating values',
|
|
45
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=update-values.js.map
|
|
@@ -3,6 +3,11 @@ import { LINEAR_ICON } from './icon.js';
|
|
|
3
3
|
import { linearSearchIssues } from './tools/search-issues.js';
|
|
4
4
|
import { linearCreateIssue } from './tools/create-issue.js';
|
|
5
5
|
import { linearListTeams } from './tools/list-teams.js';
|
|
6
|
+
import { linearGetIssue } from './tools/get-issue.js';
|
|
7
|
+
import { linearUpdateIssue } from './tools/update-issue.js';
|
|
8
|
+
import { linearListProjects } from './tools/list-projects.js';
|
|
9
|
+
import { linearListWorkflowStates } from './tools/list-workflow-states.js';
|
|
10
|
+
import { linearAddComment } from './tools/add-comment.js';
|
|
6
11
|
export default defineToolkit({
|
|
7
12
|
id: 'linear',
|
|
8
13
|
displayName: 'Linear',
|
|
@@ -45,6 +50,36 @@ export default defineToolkit({
|
|
|
45
50
|
requiredAuth: 'linearToken',
|
|
46
51
|
scope: 'read',
|
|
47
52
|
}),
|
|
53
|
+
defineTool({
|
|
54
|
+
name: 'linearGetIssue',
|
|
55
|
+
tool: linearGetIssue,
|
|
56
|
+
requiredAuth: 'linearToken',
|
|
57
|
+
scope: 'read',
|
|
58
|
+
}),
|
|
59
|
+
defineTool({
|
|
60
|
+
name: 'linearUpdateIssue',
|
|
61
|
+
tool: linearUpdateIssue,
|
|
62
|
+
requiredAuth: 'linearToken',
|
|
63
|
+
scope: 'write',
|
|
64
|
+
}),
|
|
65
|
+
defineTool({
|
|
66
|
+
name: 'linearListProjects',
|
|
67
|
+
tool: linearListProjects,
|
|
68
|
+
requiredAuth: 'linearToken',
|
|
69
|
+
scope: 'read',
|
|
70
|
+
}),
|
|
71
|
+
defineTool({
|
|
72
|
+
name: 'linearListWorkflowStates',
|
|
73
|
+
tool: linearListWorkflowStates,
|
|
74
|
+
requiredAuth: 'linearToken',
|
|
75
|
+
scope: 'read',
|
|
76
|
+
}),
|
|
77
|
+
defineTool({
|
|
78
|
+
name: 'linearAddComment',
|
|
79
|
+
tool: linearAddComment,
|
|
80
|
+
requiredAuth: 'linearToken',
|
|
81
|
+
scope: 'write',
|
|
82
|
+
}),
|
|
48
83
|
],
|
|
49
84
|
meta: { since: '0.0.1' },
|
|
50
85
|
});
|