@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.
Files changed (174) hide show
  1. package/README.md +104 -0
  2. package/dist/core/index.d.ts +1 -0
  3. package/dist/core/index.js +1 -0
  4. package/dist/index.d.ts +0 -1
  5. package/dist/index.js +0 -1
  6. package/dist/toolkits/github/tools/Actions/get-workflow-job.d.ts +3 -3
  7. package/dist/toolkits/github/tools/Actions/list-artifacts.d.ts +1 -1
  8. package/dist/toolkits/github/tools/Actions/list-workflow-jobs.d.ts +4 -4
  9. package/dist/toolkits/github/tools/Actions/list-workflow-run-artifacts.d.ts +1 -1
  10. package/dist/toolkits/github/tools/Activity/list-notifications.d.ts +2 -2
  11. package/dist/toolkits/github/tools/Activity/list-public-events.d.ts +1 -1
  12. package/dist/toolkits/github/tools/Activity/list-repo-events.d.ts +1 -1
  13. package/dist/toolkits/github/tools/Activity/list-user-events.d.ts +1 -1
  14. package/dist/toolkits/github/tools/Apps/list-installations.d.ts +1 -1
  15. package/dist/toolkits/github/tools/Checks/create-check-run.d.ts +5 -5
  16. package/dist/toolkits/github/tools/Checks/create-check-suite.d.ts +2 -2
  17. package/dist/toolkits/github/tools/Checks/get-check-run.d.ts +2 -2
  18. package/dist/toolkits/github/tools/Checks/get-check-suite.d.ts +2 -2
  19. package/dist/toolkits/github/tools/Checks/list-check-runs.d.ts +4 -4
  20. package/dist/toolkits/github/tools/Checks/update-check-run.d.ts +4 -4
  21. package/dist/toolkits/github/tools/CodeScanning/list-alerts.d.ts +2 -2
  22. package/dist/toolkits/github/tools/CodeScanning/update-alert.d.ts +1 -1
  23. package/dist/toolkits/github/tools/Collaborators/add-collaborator.d.ts +1 -1
  24. package/dist/toolkits/github/tools/Collaborators/check-collaborator.d.ts +1 -1
  25. package/dist/toolkits/github/tools/Collaborators/list-collaborators.d.ts +1 -1
  26. package/dist/toolkits/github/tools/Collaborators/remove-collaborator.d.ts +1 -1
  27. package/dist/toolkits/github/tools/Commits/compare-commits.d.ts +2 -2
  28. package/dist/toolkits/github/tools/Commits/get-commit.d.ts +2 -2
  29. package/dist/toolkits/github/tools/Commits/list-commits.d.ts +1 -1
  30. package/dist/toolkits/github/tools/Commits/list-pull-requests-associated-with-commit.d.ts +2 -2
  31. package/dist/toolkits/github/tools/Dependabot/list-alerts.d.ts +1 -1
  32. package/dist/toolkits/github/tools/Dependabot/update-alert.d.ts +1 -1
  33. package/dist/toolkits/github/tools/DeployKeys/list-deploy-keys.d.ts +1 -1
  34. package/dist/toolkits/github/tools/Deployments/create-deployment.d.ts +1 -1
  35. package/dist/toolkits/github/tools/Deployments/list-deployments.d.ts +1 -1
  36. package/dist/toolkits/github/tools/Environments/list-environments.d.ts +1 -1
  37. package/dist/toolkits/github/tools/Files/create-or-update-file.d.ts +1 -1
  38. package/dist/toolkits/github/tools/Gists/create-gist.d.ts +1 -1
  39. package/dist/toolkits/github/tools/Git/create-blob.d.ts +1 -1
  40. package/dist/toolkits/github/tools/Git/create-tree.d.ts +1 -1
  41. package/dist/toolkits/github/tools/Issues/add-issue-assignees.d.ts +1 -1
  42. package/dist/toolkits/github/tools/Issues/add-issue-labels.d.ts +1 -1
  43. package/dist/toolkits/github/tools/Issues/list-authenticated-user-issues.d.ts +4 -4
  44. package/dist/toolkits/github/tools/Issues/list-issue-comments.d.ts +1 -1
  45. package/dist/toolkits/github/tools/Issues/list-org-issues.d.ts +4 -4
  46. package/dist/toolkits/github/tools/Issues/list-repo-issues.d.ts +2 -2
  47. package/dist/toolkits/github/tools/Issues/list-user-account-issues.d.ts +4 -4
  48. package/dist/toolkits/github/tools/Organizations/get-org-membership.d.ts +1 -1
  49. package/dist/toolkits/github/tools/Organizations/list-org-members.d.ts +1 -1
  50. package/dist/toolkits/github/tools/Organizations/list-org-repositories.d.ts +2 -2
  51. package/dist/toolkits/github/tools/Organizations/list-user-organizations.d.ts +1 -1
  52. package/dist/toolkits/github/tools/Organizations/update-organization.d.ts +1 -1
  53. package/dist/toolkits/github/tools/PRs/create-pull-request-review.d.ts +1 -1
  54. package/dist/toolkits/github/tools/PRs/list-pull-request-files.d.ts +1 -1
  55. package/dist/toolkits/github/tools/PRs/list-pull-requests.d.ts +1 -1
  56. package/dist/toolkits/github/tools/Projects/list-org-projects.d.ts +1 -1
  57. package/dist/toolkits/github/tools/Projects/list-project-columns.d.ts +1 -1
  58. package/dist/toolkits/github/tools/Projects/list-repo-projects.d.ts +1 -1
  59. package/dist/toolkits/github/tools/Projects/update-project.d.ts +1 -1
  60. package/dist/toolkits/github/tools/Reactions/create-commit-comment-reaction.d.ts +1 -1
  61. package/dist/toolkits/github/tools/Reactions/create-issue-reaction.d.ts +1 -1
  62. package/dist/toolkits/github/tools/Reactions/list-commit-comment-reactions.d.ts +1 -1
  63. package/dist/toolkits/github/tools/Reactions/list-issue-reactions.d.ts +1 -1
  64. package/dist/toolkits/github/tools/Reactions/list-pr-comment-reactions.d.ts +1 -1
  65. package/dist/toolkits/github/tools/Releases/list-releases.d.ts +1 -1
  66. package/dist/toolkits/github/tools/Repos/get-repo-contributors.d.ts +1 -1
  67. package/dist/toolkits/github/tools/Repos/list-branches.d.ts +1 -1
  68. package/dist/toolkits/github/tools/Repos/list-repos.d.ts +2 -2
  69. package/dist/toolkits/github/tools/Repos/watch-repo.d.ts +1 -1
  70. package/dist/toolkits/github/tools/Search/search-repos.d.ts +1 -1
  71. package/dist/toolkits/github/tools/SecretScanning/list-alerts.d.ts +1 -1
  72. package/dist/toolkits/github/tools/SecretScanning/update-alert.d.ts +1 -1
  73. package/dist/toolkits/github/tools/SecurityAdvisories/create-repository-advisory.d.ts +1 -1
  74. package/dist/toolkits/github/tools/SecurityAdvisories/get-repository-advisory.d.ts +1 -1
  75. package/dist/toolkits/github/tools/SecurityAdvisories/list-global-advisories.d.ts +1 -1
  76. package/dist/toolkits/github/tools/SecurityAdvisories/list-repository-advisories.d.ts +2 -2
  77. package/dist/toolkits/github/tools/Stars/list-stargazers.d.ts +1 -1
  78. package/dist/toolkits/github/tools/Stars/list-starred-repos.d.ts +1 -1
  79. package/dist/toolkits/github/tools/Statuses/create-commit-status.d.ts +1 -1
  80. package/dist/toolkits/github/tools/Statuses/list-commit-statuses.d.ts +1 -1
  81. package/dist/toolkits/github/tools/Teams/list-team-members.d.ts +1 -1
  82. package/dist/toolkits/github/tools/Teams/list-team-repos.d.ts +1 -1
  83. package/dist/toolkits/github/tools/Teams/list-teams.d.ts +1 -1
  84. package/dist/toolkits/github/tools/Users/get-user-context.d.ts +1 -1
  85. package/dist/toolkits/github/tools/Users/update-authenticated-user.d.ts +1 -1
  86. package/dist/toolkits/github/tools/Webhooks/create-repo-webhook.d.ts +1 -1
  87. package/dist/toolkits/github/tools/Webhooks/list-repo-webhooks.d.ts +1 -1
  88. package/dist/toolkits/github/tools/Webhooks/update-repo-webhook.d.ts +1 -1
  89. package/dist/toolkits/github/tools/Workflows/list-workflow-runs.d.ts +2 -2
  90. package/dist/toolkits/github/tools/Workflows/list-workflows.d.ts +1 -1
  91. package/dist/toolkits/github/tools/index.d.ts +4859 -175
  92. package/dist/toolkits/github/tools/index.js +342 -342
  93. package/dist/toolkits/gmail/icon.js +14 -14
  94. package/dist/toolkits/gmail/manifest.js +78 -5
  95. package/dist/toolkits/gmail/tools/create-draft.d.ts +34 -0
  96. package/dist/toolkits/gmail/tools/create-draft.js +60 -0
  97. package/dist/toolkits/gmail/tools/delete-draft.d.ts +23 -0
  98. package/dist/toolkits/gmail/tools/delete-draft.js +34 -0
  99. package/dist/toolkits/gmail/tools/get-draft.d.ts +32 -0
  100. package/dist/toolkits/gmail/tools/get-draft.js +36 -0
  101. package/dist/toolkits/gmail/tools/get-message.d.ts +12 -12
  102. package/dist/toolkits/gmail/tools/get-message.js +3 -24
  103. package/dist/toolkits/gmail/tools/get-thread.d.ts +29 -0
  104. package/dist/toolkits/gmail/tools/get-thread.js +39 -0
  105. package/dist/toolkits/gmail/tools/index.d.ts +17 -0
  106. package/dist/toolkits/gmail/tools/index.js +17 -0
  107. package/dist/toolkits/gmail/tools/list-drafts.d.ts +28 -0
  108. package/dist/toolkits/gmail/tools/list-drafts.js +43 -0
  109. package/dist/toolkits/gmail/tools/list-labels.d.ts +20 -0
  110. package/dist/toolkits/gmail/tools/list-labels.js +46 -0
  111. package/dist/toolkits/gmail/tools/list-threads.d.ts +28 -0
  112. package/dist/toolkits/gmail/tools/list-threads.js +43 -0
  113. package/dist/toolkits/gmail/tools/modify-message-labels.d.ts +31 -0
  114. package/dist/toolkits/gmail/tools/modify-message-labels.js +44 -0
  115. package/dist/toolkits/gmail/tools/reply-to-thread.d.ts +33 -0
  116. package/dist/toolkits/gmail/tools/reply-to-thread.js +58 -0
  117. package/dist/toolkits/gmail/tools/send-draft.d.ts +29 -0
  118. package/dist/toolkits/gmail/tools/send-draft.js +41 -0
  119. package/dist/toolkits/gmail/tools/send-message.d.ts +4 -1
  120. package/dist/toolkits/gmail/tools/send-message.js +18 -16
  121. package/dist/toolkits/gmail/tools/trash-message.d.ts +29 -0
  122. package/dist/toolkits/gmail/tools/trash-message.js +37 -0
  123. package/dist/toolkits/gmail/tools/untrash-message.d.ts +29 -0
  124. package/dist/toolkits/gmail/tools/untrash-message.js +37 -0
  125. package/dist/toolkits/gmail/tools/utils.d.ts +41 -0
  126. package/dist/toolkits/gmail/tools/utils.js +97 -0
  127. package/dist/toolkits/google-calendar/manifest.js +1 -1
  128. package/dist/toolkits/google-calendar/tools/delete-event.d.ts +27 -0
  129. package/dist/toolkits/google-calendar/tools/delete-event.js +38 -0
  130. package/dist/toolkits/google-calendar/tools/get-event.d.ts +24 -0
  131. package/dist/toolkits/google-calendar/tools/get-event.js +37 -0
  132. package/dist/toolkits/google-calendar/tools/index.d.ts +181 -3
  133. package/dist/toolkits/google-calendar/tools/index.js +31 -2
  134. package/dist/toolkits/google-calendar/tools/search-events.d.ts +27 -0
  135. package/dist/toolkits/google-calendar/tools/search-events.js +49 -0
  136. package/dist/toolkits/google-calendar/tools/update-event.d.ts +29 -0
  137. package/dist/toolkits/google-calendar/tools/update-event.js +56 -0
  138. package/dist/toolkits/google-sheets/manifest.js +2 -2
  139. package/dist/toolkits/google-sheets/tools/append-values.d.ts +41 -0
  140. package/dist/toolkits/google-sheets/tools/append-values.js +51 -0
  141. package/dist/toolkits/google-sheets/tools/clear-values.d.ts +27 -0
  142. package/dist/toolkits/google-sheets/tools/clear-values.js +41 -0
  143. package/dist/toolkits/google-sheets/tools/create-spreadsheet.d.ts +33 -0
  144. package/dist/toolkits/google-sheets/tools/create-spreadsheet.js +59 -0
  145. package/dist/toolkits/google-sheets/tools/index.d.ts +205 -7
  146. package/dist/toolkits/google-sheets/tools/index.js +39 -4
  147. package/dist/toolkits/google-sheets/tools/update-values.d.ts +38 -0
  148. package/dist/toolkits/google-sheets/tools/update-values.js +50 -0
  149. package/dist/toolkits/linear/manifest.js +35 -0
  150. package/dist/toolkits/linear/tools/add-comment.d.ts +6 -0
  151. package/dist/toolkits/linear/tools/add-comment.js +52 -0
  152. package/dist/toolkits/linear/tools/get-issue.d.ts +6 -0
  153. package/dist/toolkits/linear/tools/get-issue.js +117 -0
  154. package/dist/toolkits/linear/tools/list-projects.d.ts +4 -0
  155. package/dist/toolkits/linear/tools/list-projects.js +46 -0
  156. package/dist/toolkits/linear/tools/list-workflow-states.d.ts +26 -0
  157. package/dist/toolkits/linear/tools/list-workflow-states.js +59 -0
  158. package/dist/toolkits/linear/tools/update-issue.d.ts +11 -0
  159. package/dist/toolkits/linear/tools/update-issue.js +78 -0
  160. package/dist/toolkits/notion/tools/append-block-children.d.ts +1 -1
  161. package/dist/toolkits/notion/tools/index.d.ts +105 -12
  162. package/dist/toolkits/notion/tools/index.js +8 -8
  163. package/dist/toolkits/notion/tools/query-database.d.ts +1 -1
  164. package/package.json +5 -7
  165. package/dist/runtime/credentials.d.ts +0 -28
  166. package/dist/runtime/credentials.js +0 -15
  167. package/dist/runtime/index.d.ts +0 -5
  168. package/dist/runtime/index.js +0 -5
  169. package/dist/runtime/meta-tools.d.ts +0 -101
  170. package/dist/runtime/meta-tools.js +0 -250
  171. package/dist/runtime/registry.d.ts +0 -20
  172. package/dist/runtime/registry.js +0 -35
  173. /package/dist/{runtime → core}/schema-helpers.d.ts +0 -0
  174. /package/dist/{runtime → core}/schema-helpers.js +0 -0
@@ -0,0 +1,97 @@
1
+ // @ts-nocheck
2
+ /**
3
+ * Base64URL encodes a string in accordance with RFC 4648 §5.
4
+ */
5
+ export function encodeBase64Url(str) {
6
+ return Buffer.from(str, 'utf-8')
7
+ .toString('base64')
8
+ .replace(/\+/g, '-')
9
+ .replace(/\//g, '_')
10
+ .replace(/=+$/, '');
11
+ }
12
+ /**
13
+ * Base64URL decodes a string back to UTF-8.
14
+ */
15
+ export function decodeBase64Url(data) {
16
+ const base64 = data.replace(/-/g, '+').replace(/_/g, '/');
17
+ return Buffer.from(base64, 'base64').toString('utf-8');
18
+ }
19
+ /**
20
+ * Encodes an email with standard RFC 2822 headers into Base64URL format.
21
+ */
22
+ export function encodeRFC822Message(params) {
23
+ const headerLines = [
24
+ `To: ${params.to}`,
25
+ params.cc ? `Cc: ${params.cc}` : null,
26
+ params.bcc ? `Bcc: ${params.bcc}` : null,
27
+ `Subject: ${params.subject}`,
28
+ params.inReplyTo ? `In-Reply-To: ${params.inReplyTo}` : null,
29
+ params.references ? `References: ${params.references}` : null,
30
+ 'Content-Type: text/plain; charset="UTF-8"',
31
+ 'MIME-Version: 1.0',
32
+ ].filter(Boolean);
33
+ const raw = `${headerLines.join('\n')}\n\n${params.body}`;
34
+ return encodeBase64Url(raw);
35
+ }
36
+ /**
37
+ * Recursively extracts plain text (or HTML fallback) body from a Gmail message payload.
38
+ */
39
+ export function extractBodyFromPayload(payload) {
40
+ if (!payload)
41
+ return '';
42
+ if (payload.body?.data) {
43
+ return decodeBase64Url(payload.body.data);
44
+ }
45
+ if (payload.parts && Array.isArray(payload.parts)) {
46
+ // Look for text/plain first
47
+ const plainPart = payload.parts.find((p) => p.mimeType === 'text/plain');
48
+ if (plainPart?.body?.data) {
49
+ return decodeBase64Url(plainPart.body.data);
50
+ }
51
+ // Check nested parts (multipart/alternative, multipart/mixed, etc.)
52
+ for (const part of payload.parts) {
53
+ if (part.parts) {
54
+ const nested = extractBodyFromPayload(part);
55
+ if (nested)
56
+ return nested;
57
+ }
58
+ }
59
+ // Fallback to text/html if plain text not available
60
+ const htmlPart = payload.parts.find((p) => p.mimeType === 'text/html');
61
+ if (htmlPart?.body?.data) {
62
+ return decodeBase64Url(htmlPart.body.data);
63
+ }
64
+ }
65
+ return '';
66
+ }
67
+ /**
68
+ * Extracts structured message details and headers from a Gmail message API response.
69
+ */
70
+ export function extractMessageDetails(data, maxBodyLength = 4000) {
71
+ if (!data)
72
+ return null;
73
+ const headers = data.payload?.headers || [];
74
+ const getHeader = (name) => headers.find((h) => h.name.toLowerCase() === name.toLowerCase())?.value;
75
+ const subject = getHeader('subject');
76
+ const from = getHeader('from');
77
+ const to = getHeader('to');
78
+ const cc = getHeader('cc');
79
+ const date = getHeader('date');
80
+ const messageIdHeader = getHeader('message-id');
81
+ const rawBody = extractBodyFromPayload(data.payload);
82
+ const body = rawBody ? rawBody.substring(0, maxBodyLength) : '';
83
+ return {
84
+ id: data.id,
85
+ threadId: data.threadId,
86
+ labelIds: data.labelIds || [],
87
+ snippet: data.snippet,
88
+ subject,
89
+ from,
90
+ to,
91
+ cc,
92
+ date,
93
+ messageIdHeader,
94
+ body,
95
+ };
96
+ }
97
+ //# sourceMappingURL=utils.js.map
@@ -5,7 +5,7 @@ import { googleCalendarTools } from './tools/index.js';
5
5
  export default defineToolkit({
6
6
  id: 'google-calendar',
7
7
  displayName: 'Google Calendar',
8
- shortDescription: 'List and create calendar events.',
8
+ shortDescription: 'List, search, create, update, and delete calendar events.',
9
9
  category: 'Scheduling & Booking',
10
10
  icon: GCAL_ICON,
11
11
  auth: {
@@ -0,0 +1,27 @@
1
+ export declare const deleteEvent: import("ai").Tool<{
2
+ googleCalendarToken: string;
3
+ eventId: string;
4
+ calendarId: string;
5
+ }, {
6
+ error: string;
7
+ details: any;
8
+ success?: undefined;
9
+ eventId?: undefined;
10
+ calendarId?: undefined;
11
+ message?: undefined;
12
+ } | {
13
+ success: boolean;
14
+ eventId: string;
15
+ calendarId: string;
16
+ error?: undefined;
17
+ details?: undefined;
18
+ message?: undefined;
19
+ } | {
20
+ error: string;
21
+ message: string;
22
+ details?: undefined;
23
+ success?: undefined;
24
+ eventId?: undefined;
25
+ calendarId?: undefined;
26
+ }>;
27
+ //# sourceMappingURL=delete-event.d.ts.map
@@ -0,0 +1,38 @@
1
+ // @ts-nocheck
2
+ import { tool } from 'ai';
3
+ import { z } from 'zod';
4
+ export const deleteEvent = tool({
5
+ description: 'Delete or cancel an event from Google Calendar by event ID.',
6
+ inputSchema: z.object({
7
+ googleCalendarToken: z.string().describe('The Google Calendar access token'),
8
+ eventId: z.string().describe('The unique ID of the event to delete'),
9
+ calendarId: z.string().optional().default('primary').describe('Calendar identifier. Default is "primary".'),
10
+ }),
11
+ execute: async ({ googleCalendarToken, eventId, calendarId = 'primary' }) => {
12
+ try {
13
+ const url = `https://www.googleapis.com/calendar/v3/calendars/${encodeURIComponent(calendarId)}/events/${encodeURIComponent(eventId)}`;
14
+ const response = await fetch(url, {
15
+ method: 'DELETE',
16
+ headers: {
17
+ Authorization: `Bearer ${googleCalendarToken}`,
18
+ },
19
+ });
20
+ if (!response.ok && response.status !== 204) {
21
+ const error = await response.json().catch(() => ({ status: response.status }));
22
+ return { error: 'Failed to delete event', details: error };
23
+ }
24
+ return {
25
+ success: true,
26
+ eventId,
27
+ calendarId,
28
+ };
29
+ }
30
+ catch (error) {
31
+ return {
32
+ error: 'Error deleting event',
33
+ message: error instanceof Error ? error.message : 'Unknown error',
34
+ };
35
+ }
36
+ },
37
+ });
38
+ //# sourceMappingURL=delete-event.js.map
@@ -0,0 +1,24 @@
1
+ export declare const getEvent: import("ai").Tool<{
2
+ googleCalendarToken: string;
3
+ eventId: string;
4
+ calendarId: string;
5
+ }, {
6
+ error: string;
7
+ details: any;
8
+ success?: undefined;
9
+ event?: undefined;
10
+ message?: undefined;
11
+ } | {
12
+ success: boolean;
13
+ event: any;
14
+ error?: undefined;
15
+ details?: undefined;
16
+ message?: undefined;
17
+ } | {
18
+ error: string;
19
+ message: string;
20
+ details?: undefined;
21
+ success?: undefined;
22
+ event?: undefined;
23
+ }>;
24
+ //# sourceMappingURL=get-event.d.ts.map
@@ -0,0 +1,37 @@
1
+ // @ts-nocheck
2
+ import { tool } from 'ai';
3
+ import { z } from 'zod';
4
+ export const getEvent = tool({
5
+ description: 'Get details of a specific event from Google Calendar by event ID.',
6
+ inputSchema: z.object({
7
+ googleCalendarToken: z.string().describe('The Google Calendar access token'),
8
+ eventId: z.string().describe('The unique ID of the event to retrieve'),
9
+ calendarId: z.string().optional().default('primary').describe('Calendar identifier. Default is "primary".'),
10
+ }),
11
+ execute: async ({ googleCalendarToken, eventId, calendarId = 'primary' }) => {
12
+ try {
13
+ const url = `https://www.googleapis.com/calendar/v3/calendars/${encodeURIComponent(calendarId)}/events/${encodeURIComponent(eventId)}`;
14
+ const response = await fetch(url, {
15
+ headers: {
16
+ Authorization: `Bearer ${googleCalendarToken}`,
17
+ },
18
+ });
19
+ if (!response.ok) {
20
+ const error = await response.json();
21
+ return { error: 'Failed to get event', details: error };
22
+ }
23
+ const data = await response.json();
24
+ return {
25
+ success: true,
26
+ event: data,
27
+ };
28
+ }
29
+ catch (error) {
30
+ return {
31
+ error: 'Error getting event',
32
+ message: error instanceof Error ? error.message : 'Unknown error',
33
+ };
34
+ }
35
+ },
36
+ });
37
+ //# sourceMappingURL=get-event.js.map
@@ -1,7 +1,185 @@
1
- export declare const googleCalendarTools: {
1
+ import { listEvents } from './list-events.js';
2
+ import { createEvent } from './create-event.js';
3
+ import { getEvent } from './get-event.js';
4
+ import { updateEvent } from './update-event.js';
5
+ import { deleteEvent } from './delete-event.js';
6
+ import { searchEvents } from './search-events.js';
7
+ export { listEvents, createEvent, getEvent, updateEvent, deleteEvent, searchEvents };
8
+ export declare const googleCalendarTools: ({
2
9
  name: string;
3
10
  description: string;
4
- tool: any;
11
+ tool: import("ai").Tool<{
12
+ maxResults: number;
13
+ googleCalendarToken: string;
14
+ timeMin?: string | undefined;
15
+ }, {
16
+ error: string;
17
+ details: any;
18
+ events?: undefined;
19
+ summary?: undefined;
20
+ message?: undefined;
21
+ } | {
22
+ events: any;
23
+ summary: any;
24
+ error?: undefined;
25
+ details?: undefined;
26
+ message?: undefined;
27
+ } | {
28
+ error: string;
29
+ message: string;
30
+ details?: undefined;
31
+ events?: undefined;
32
+ summary?: undefined;
33
+ }>;
5
34
  requiredAuth: string;
6
- }[];
35
+ } | {
36
+ name: string;
37
+ description: string;
38
+ tool: import("ai").Tool<{
39
+ summary: string;
40
+ googleCalendarToken: string;
41
+ start: string;
42
+ end: string;
43
+ description?: string | undefined;
44
+ location?: string | undefined;
45
+ }, {
46
+ error: string;
47
+ details: any;
48
+ success?: undefined;
49
+ event?: undefined;
50
+ message?: undefined;
51
+ } | {
52
+ success: boolean;
53
+ event: any;
54
+ error?: undefined;
55
+ details?: undefined;
56
+ message?: undefined;
57
+ } | {
58
+ error: string;
59
+ message: string;
60
+ details?: undefined;
61
+ success?: undefined;
62
+ event?: undefined;
63
+ }>;
64
+ requiredAuth: string;
65
+ } | {
66
+ name: string;
67
+ description: string;
68
+ tool: import("ai").Tool<{
69
+ googleCalendarToken: string;
70
+ eventId: string;
71
+ calendarId: string;
72
+ }, {
73
+ error: string;
74
+ details: any;
75
+ success?: undefined;
76
+ event?: undefined;
77
+ message?: undefined;
78
+ } | {
79
+ success: boolean;
80
+ event: any;
81
+ error?: undefined;
82
+ details?: undefined;
83
+ message?: undefined;
84
+ } | {
85
+ error: string;
86
+ message: string;
87
+ details?: undefined;
88
+ success?: undefined;
89
+ event?: undefined;
90
+ }>;
91
+ requiredAuth: string;
92
+ } | {
93
+ name: string;
94
+ description: string;
95
+ tool: import("ai").Tool<{
96
+ googleCalendarToken: string;
97
+ eventId: string;
98
+ calendarId: string;
99
+ description?: string | undefined;
100
+ location?: string | undefined;
101
+ summary?: string | undefined;
102
+ start?: string | undefined;
103
+ end?: string | undefined;
104
+ }, {
105
+ error: string;
106
+ details: any;
107
+ success?: undefined;
108
+ event?: undefined;
109
+ message?: undefined;
110
+ } | {
111
+ success: boolean;
112
+ event: any;
113
+ error?: undefined;
114
+ details?: undefined;
115
+ message?: undefined;
116
+ } | {
117
+ error: string;
118
+ message: string;
119
+ details?: undefined;
120
+ success?: undefined;
121
+ event?: undefined;
122
+ }>;
123
+ requiredAuth: string;
124
+ } | {
125
+ name: string;
126
+ description: string;
127
+ tool: import("ai").Tool<{
128
+ googleCalendarToken: string;
129
+ eventId: string;
130
+ calendarId: string;
131
+ }, {
132
+ error: string;
133
+ details: any;
134
+ success?: undefined;
135
+ eventId?: undefined;
136
+ calendarId?: undefined;
137
+ message?: undefined;
138
+ } | {
139
+ success: boolean;
140
+ eventId: string;
141
+ calendarId: string;
142
+ error?: undefined;
143
+ details?: undefined;
144
+ message?: undefined;
145
+ } | {
146
+ error: string;
147
+ message: string;
148
+ details?: undefined;
149
+ success?: undefined;
150
+ eventId?: undefined;
151
+ calendarId?: undefined;
152
+ }>;
153
+ requiredAuth: string;
154
+ } | {
155
+ name: string;
156
+ description: string;
157
+ tool: import("ai").Tool<{
158
+ maxResults: number;
159
+ googleCalendarToken: string;
160
+ calendarId: string;
161
+ q?: string | undefined;
162
+ timeMin?: string | undefined;
163
+ timeMax?: string | undefined;
164
+ }, {
165
+ error: string;
166
+ details: any;
167
+ events?: undefined;
168
+ summary?: undefined;
169
+ message?: undefined;
170
+ } | {
171
+ events: any;
172
+ summary: any;
173
+ error?: undefined;
174
+ details?: undefined;
175
+ message?: undefined;
176
+ } | {
177
+ error: string;
178
+ message: string;
179
+ details?: undefined;
180
+ events?: undefined;
181
+ summary?: undefined;
182
+ }>;
183
+ requiredAuth: string;
184
+ })[];
7
185
  //# sourceMappingURL=index.d.ts.map
@@ -1,6 +1,11 @@
1
1
  // @ts-nocheck
2
- import { listEvents } from './list-events';
3
- import { createEvent } from './create-event';
2
+ import { listEvents } from './list-events.js';
3
+ import { createEvent } from './create-event.js';
4
+ import { getEvent } from './get-event.js';
5
+ import { updateEvent } from './update-event.js';
6
+ import { deleteEvent } from './delete-event.js';
7
+ import { searchEvents } from './search-events.js';
8
+ export { listEvents, createEvent, getEvent, updateEvent, deleteEvent, searchEvents };
4
9
  export const googleCalendarTools = [
5
10
  {
6
11
  name: 'listEvents',
@@ -14,5 +19,29 @@ export const googleCalendarTools = [
14
19
  tool: createEvent,
15
20
  requiredAuth: 'googleCalendarToken',
16
21
  },
22
+ {
23
+ name: 'getEvent',
24
+ description: 'Get details of a specific event from Google Calendar by event ID.',
25
+ tool: getEvent,
26
+ requiredAuth: 'googleCalendarToken',
27
+ },
28
+ {
29
+ name: 'updateEvent',
30
+ description: 'Update or reschedule an existing event in Google Calendar (e.g., change summary, start/end time, description, or location).',
31
+ tool: updateEvent,
32
+ requiredAuth: 'googleCalendarToken',
33
+ },
34
+ {
35
+ name: 'deleteEvent',
36
+ description: 'Delete or cancel an event from Google Calendar by event ID.',
37
+ tool: deleteEvent,
38
+ requiredAuth: 'googleCalendarToken',
39
+ },
40
+ {
41
+ name: 'searchEvents',
42
+ description: 'Search for events in Google Calendar matching a free text query and/or date range.',
43
+ tool: searchEvents,
44
+ requiredAuth: 'googleCalendarToken',
45
+ },
17
46
  ];
18
47
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,27 @@
1
+ export declare const searchEvents: import("ai").Tool<{
2
+ maxResults: number;
3
+ googleCalendarToken: string;
4
+ calendarId: string;
5
+ q?: string | undefined;
6
+ timeMin?: string | undefined;
7
+ timeMax?: string | undefined;
8
+ }, {
9
+ error: string;
10
+ details: any;
11
+ events?: undefined;
12
+ summary?: undefined;
13
+ message?: undefined;
14
+ } | {
15
+ events: any;
16
+ summary: any;
17
+ error?: undefined;
18
+ details?: undefined;
19
+ message?: undefined;
20
+ } | {
21
+ error: string;
22
+ message: string;
23
+ details?: undefined;
24
+ events?: undefined;
25
+ summary?: undefined;
26
+ }>;
27
+ //# sourceMappingURL=search-events.d.ts.map
@@ -0,0 +1,49 @@
1
+ // @ts-nocheck
2
+ import { tool } from 'ai';
3
+ import { z } from 'zod';
4
+ export const searchEvents = tool({
5
+ description: 'Search for events in Google Calendar matching a free text query and/or date range.',
6
+ inputSchema: z.object({
7
+ googleCalendarToken: z.string().describe('The Google Calendar access token'),
8
+ q: z.string().optional().describe('Free text search terms to find events (e.g. "team sync", "meeting with Alice")'),
9
+ calendarId: z.string().optional().default('primary').describe('Calendar identifier. Default is "primary".'),
10
+ timeMin: z.string().optional().describe('Lower bound (exclusive) for event end times (RFC3339 timestamp)'),
11
+ timeMax: z.string().optional().describe('Upper bound (exclusive) for event start times (RFC3339 timestamp)'),
12
+ maxResults: z.number().optional().default(10).describe('Maximum number of events to return'),
13
+ }),
14
+ execute: async ({ googleCalendarToken, q, calendarId = 'primary', timeMin, timeMax, maxResults }) => {
15
+ try {
16
+ const url = new URL(`https://www.googleapis.com/calendar/v3/calendars/${encodeURIComponent(calendarId)}/events`);
17
+ url.searchParams.append('maxResults', maxResults.toString());
18
+ url.searchParams.append('singleEvents', 'true');
19
+ url.searchParams.append('orderBy', 'startTime');
20
+ if (q)
21
+ url.searchParams.append('q', q);
22
+ if (timeMin)
23
+ url.searchParams.append('timeMin', timeMin);
24
+ if (timeMax)
25
+ url.searchParams.append('timeMax', timeMax);
26
+ const response = await fetch(url.toString(), {
27
+ headers: {
28
+ Authorization: `Bearer ${googleCalendarToken}`,
29
+ },
30
+ });
31
+ if (!response.ok) {
32
+ const error = await response.json();
33
+ return { error: 'Failed to search events', details: error };
34
+ }
35
+ const data = await response.json();
36
+ return {
37
+ events: data.items || [],
38
+ summary: data.summary,
39
+ };
40
+ }
41
+ catch (error) {
42
+ return {
43
+ error: 'Error searching events',
44
+ message: error instanceof Error ? error.message : 'Unknown error',
45
+ };
46
+ }
47
+ },
48
+ });
49
+ //# sourceMappingURL=search-events.js.map
@@ -0,0 +1,29 @@
1
+ export declare const updateEvent: import("ai").Tool<{
2
+ googleCalendarToken: string;
3
+ eventId: string;
4
+ calendarId: string;
5
+ description?: string | undefined;
6
+ location?: string | undefined;
7
+ summary?: string | undefined;
8
+ start?: string | undefined;
9
+ end?: string | undefined;
10
+ }, {
11
+ error: string;
12
+ details: any;
13
+ success?: undefined;
14
+ event?: undefined;
15
+ message?: undefined;
16
+ } | {
17
+ success: boolean;
18
+ event: any;
19
+ error?: undefined;
20
+ details?: undefined;
21
+ message?: undefined;
22
+ } | {
23
+ error: string;
24
+ message: string;
25
+ details?: undefined;
26
+ success?: undefined;
27
+ event?: undefined;
28
+ }>;
29
+ //# sourceMappingURL=update-event.d.ts.map
@@ -0,0 +1,56 @@
1
+ // @ts-nocheck
2
+ import { tool } from 'ai';
3
+ import { z } from 'zod';
4
+ export const updateEvent = tool({
5
+ description: 'Update or reschedule an existing event in Google Calendar (e.g., change summary, start/end time, description, or location).',
6
+ inputSchema: z.object({
7
+ googleCalendarToken: z.string().describe('The Google Calendar access token'),
8
+ eventId: z.string().describe('The unique ID of the event to update'),
9
+ calendarId: z.string().optional().default('primary').describe('Calendar identifier. Default is "primary".'),
10
+ summary: z.string().optional().describe('New summary/title of the event'),
11
+ description: z.string().optional().describe('New description of the event'),
12
+ start: z.string().optional().describe('New start time (RFC3339 timestamp, e.g., 2026-09-10T10:00:00Z)'),
13
+ end: z.string().optional().describe('New end time (RFC3339 timestamp, e.g., 2026-09-10T11:00:00Z)'),
14
+ location: z.string().optional().describe('New location of the event'),
15
+ }),
16
+ execute: async ({ googleCalendarToken, eventId, calendarId = 'primary', summary, description, start, end, location }) => {
17
+ try {
18
+ const url = `https://www.googleapis.com/calendar/v3/calendars/${encodeURIComponent(calendarId)}/events/${encodeURIComponent(eventId)}`;
19
+ const updatePayload = {};
20
+ if (summary !== undefined)
21
+ updatePayload.summary = summary;
22
+ if (description !== undefined)
23
+ updatePayload.description = description;
24
+ if (location !== undefined)
25
+ updatePayload.location = location;
26
+ if (start !== undefined)
27
+ updatePayload.start = { dateTime: start };
28
+ if (end !== undefined)
29
+ updatePayload.end = { dateTime: end };
30
+ const response = await fetch(url, {
31
+ method: 'PATCH',
32
+ headers: {
33
+ Authorization: `Bearer ${googleCalendarToken}`,
34
+ 'Content-Type': 'application/json',
35
+ },
36
+ body: JSON.stringify(updatePayload),
37
+ });
38
+ if (!response.ok) {
39
+ const error = await response.json();
40
+ return { error: 'Failed to update event', details: error };
41
+ }
42
+ const data = await response.json();
43
+ return {
44
+ success: true,
45
+ event: data,
46
+ };
47
+ }
48
+ catch (error) {
49
+ return {
50
+ error: 'Error updating event',
51
+ message: error instanceof Error ? error.message : 'Unknown error',
52
+ };
53
+ }
54
+ },
55
+ });
56
+ //# sourceMappingURL=update-event.js.map
@@ -5,7 +5,7 @@ import { googleSheetsTools } from './tools/index.js';
5
5
  export default defineToolkit({
6
6
  id: 'google-sheets',
7
7
  displayName: 'Google Sheets',
8
- shortDescription: 'Spreadsheets, ranges, and values.',
8
+ shortDescription: 'Read, write, append, and manage Google Sheets spreadsheets and cell values.',
9
9
  category: 'Document & File Management',
10
10
  icon: GSHEETS_ICON,
11
11
  auth: {
@@ -38,7 +38,7 @@ export default defineToolkit({
38
38
  description: entry.description,
39
39
  tool: entry.tool,
40
40
  requiredAuth: entry.requiredAuth,
41
- scope: inferToolScope(entry.name),
41
+ scope: entry.scope ?? inferToolScope(entry.name),
42
42
  })),
43
43
  meta: { since: '0.0.2' },
44
44
  });