@rnsk/toolkits 0.0.5 → 0.0.7
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 +21 -10
- package/dist/core/index.d.ts +1 -1
- package/dist/core/types.d.ts +43 -1
- package/dist/core/validate.d.ts +1 -1
- package/dist/core/validate.js +14 -2
- package/dist/index.d.ts +9 -1
- package/dist/index.js +17 -1
- package/dist/toolkits/aws/icon.d.ts +5 -0
- package/dist/toolkits/aws/icon.js +41 -0
- package/dist/toolkits/aws/manifest.d.ts +3 -0
- package/dist/toolkits/aws/manifest.js +27 -0
- package/dist/toolkits/aws/tools/client.d.ts +13 -0
- package/dist/toolkits/aws/tools/client.js +25 -0
- package/dist/toolkits/aws/tools/cloudwatch/filter-log-events.d.ts +26 -0
- package/dist/toolkits/aws/tools/cloudwatch/filter-log-events.js +45 -0
- package/dist/toolkits/aws/tools/cloudwatch/get-metric-data.d.ts +35 -0
- package/dist/toolkits/aws/tools/cloudwatch/get-metric-data.js +62 -0
- package/dist/toolkits/aws/tools/cloudwatch/list-alarms.d.ts +29 -0
- package/dist/toolkits/aws/tools/cloudwatch/list-alarms.js +46 -0
- package/dist/toolkits/aws/tools/cloudwatch/list-log-groups.d.ts +25 -0
- package/dist/toolkits/aws/tools/cloudwatch/list-log-groups.js +38 -0
- package/dist/toolkits/aws/tools/ec2/get-instance.d.ts +65 -0
- package/dist/toolkits/aws/tools/ec2/get-instance.js +46 -0
- package/dist/toolkits/aws/tools/ec2/list-instances.d.ts +30 -0
- package/dist/toolkits/aws/tools/ec2/list-instances.js +46 -0
- package/dist/toolkits/aws/tools/ec2/start-instance.d.ts +24 -0
- package/dist/toolkits/aws/tools/ec2/start-instance.js +31 -0
- package/dist/toolkits/aws/tools/ec2/stop-instance.d.ts +24 -0
- package/dist/toolkits/aws/tools/ec2/stop-instance.js +31 -0
- package/dist/toolkits/aws/tools/index.d.ts +273 -0
- package/dist/toolkits/aws/tools/index.js +68 -0
- package/dist/toolkits/docker-hub/icon.d.ts +5 -0
- package/dist/toolkits/docker-hub/icon.js +29 -0
- package/dist/toolkits/docker-hub/manifest.d.ts +3 -0
- package/dist/toolkits/docker-hub/manifest.js +32 -0
- package/dist/toolkits/docker-hub/tools/add-org-member.d.ts +29 -0
- package/dist/toolkits/docker-hub/tools/add-org-member.js +39 -0
- package/dist/toolkits/docker-hub/tools/create-organization.d.ts +6 -0
- package/dist/toolkits/docker-hub/tools/create-organization.js +28 -0
- package/dist/toolkits/docker-hub/tools/create-repository.d.ts +9 -0
- package/dist/toolkits/docker-hub/tools/create-repository.js +37 -0
- package/dist/toolkits/docker-hub/tools/create-webhook.d.ts +48 -0
- package/dist/toolkits/docker-hub/tools/create-webhook.js +51 -0
- package/dist/toolkits/docker-hub/tools/delete-image.d.ts +11 -0
- package/dist/toolkits/docker-hub/tools/delete-image.js +46 -0
- package/dist/toolkits/docker-hub/tools/delete-organization.d.ts +23 -0
- package/dist/toolkits/docker-hub/tools/delete-organization.js +29 -0
- package/dist/toolkits/docker-hub/tools/delete-repository.d.ts +21 -0
- package/dist/toolkits/docker-hub/tools/delete-repository.js +29 -0
- package/dist/toolkits/docker-hub/tools/delete-tag.d.ts +25 -0
- package/dist/toolkits/docker-hub/tools/delete-tag.js +29 -0
- package/dist/toolkits/docker-hub/tools/delete-team.d.ts +24 -0
- package/dist/toolkits/docker-hub/tools/delete-team.js +25 -0
- package/dist/toolkits/docker-hub/tools/delete-webhook.d.ts +25 -0
- package/dist/toolkits/docker-hub/tools/delete-webhook.js +31 -0
- package/dist/toolkits/docker-hub/tools/get-image.d.ts +75 -0
- package/dist/toolkits/docker-hub/tools/get-image.js +51 -0
- package/dist/toolkits/docker-hub/tools/get-repository.d.ts +6 -0
- package/dist/toolkits/docker-hub/tools/get-repository.js +25 -0
- package/dist/toolkits/docker-hub/tools/get-tag.d.ts +7 -0
- package/dist/toolkits/docker-hub/tools/get-tag.js +26 -0
- package/dist/toolkits/docker-hub/tools/get-team.d.ts +6 -0
- package/dist/toolkits/docker-hub/tools/get-team.js +25 -0
- package/dist/toolkits/docker-hub/tools/get-webhook.d.ts +26 -0
- package/dist/toolkits/docker-hub/tools/get-webhook.js +26 -0
- package/dist/toolkits/docker-hub/tools/index.d.ts +437 -0
- package/dist/toolkits/docker-hub/tools/index.js +165 -0
- package/dist/toolkits/docker-hub/tools/list-org-access-tokens.d.ts +7 -0
- package/dist/toolkits/docker-hub/tools/list-org-access-tokens.js +26 -0
- package/dist/toolkits/docker-hub/tools/list-org-members.d.ts +7 -0
- package/dist/toolkits/docker-hub/tools/list-org-members.js +26 -0
- package/dist/toolkits/docker-hub/tools/list-organizations.d.ts +6 -0
- package/dist/toolkits/docker-hub/tools/list-organizations.js +25 -0
- package/dist/toolkits/docker-hub/tools/list-repositories.d.ts +10 -0
- package/dist/toolkits/docker-hub/tools/list-repositories.js +35 -0
- package/dist/toolkits/docker-hub/tools/list-team-members.d.ts +9 -0
- package/dist/toolkits/docker-hub/tools/list-team-members.js +32 -0
- package/dist/toolkits/docker-hub/tools/list-teams.d.ts +7 -0
- package/dist/toolkits/docker-hub/tools/list-teams.js +26 -0
- package/dist/toolkits/docker-hub/tools/list-webhooks.d.ts +8 -0
- package/dist/toolkits/docker-hub/tools/list-webhooks.js +38 -0
- package/dist/toolkits/docker-hub/tools/remove-org-member.d.ts +21 -0
- package/dist/toolkits/docker-hub/tools/remove-org-member.js +25 -0
- package/dist/toolkits/docker-hub/tools/remove-team-member.d.ts +25 -0
- package/dist/toolkits/docker-hub/tools/remove-team-member.js +26 -0
- package/dist/toolkits/docker-hub/tools/utils.d.ts +24 -0
- package/dist/toolkits/docker-hub/tools/utils.js +87 -0
- package/dist/toolkits/gcp/icon.d.ts +5 -0
- package/dist/toolkits/gcp/icon.js +5 -0
- package/dist/toolkits/gcp/manifest.d.ts +3 -0
- package/dist/toolkits/gcp/manifest.js +27 -0
- package/dist/toolkits/gcp/tools/client.d.ts +12 -0
- package/dist/toolkits/gcp/tools/client.js +24 -0
- package/dist/toolkits/gcp/tools/compute/get-instance.d.ts +36 -0
- package/dist/toolkits/gcp/tools/compute/get-instance.js +37 -0
- package/dist/toolkits/gcp/tools/compute/list-instances.d.ts +20 -0
- package/dist/toolkits/gcp/tools/compute/list-instances.js +62 -0
- package/dist/toolkits/gcp/tools/compute/start-instance.d.ts +27 -0
- package/dist/toolkits/gcp/tools/compute/start-instance.js +29 -0
- package/dist/toolkits/gcp/tools/compute/stop-instance.d.ts +27 -0
- package/dist/toolkits/gcp/tools/compute/stop-instance.js +29 -0
- package/dist/toolkits/gcp/tools/index.d.ts +162 -0
- package/dist/toolkits/gcp/tools/index.js +52 -0
- package/dist/toolkits/gcp/tools/monitoring/get-metrics.d.ts +26 -0
- package/dist/toolkits/gcp/tools/monitoring/get-metrics.js +53 -0
- package/dist/toolkits/gcp/tools/monitoring/list-metric-descriptors.d.ts +24 -0
- package/dist/toolkits/gcp/tools/monitoring/list-metric-descriptors.js +40 -0
- package/dist/toolkits/github/tools/Git/create-blob.d.ts +1 -1
- package/dist/toolkits/github/tools/Issues/remove-issue-label.d.ts +1 -1
- package/dist/toolkits/github/tools/Repos/star-repo.d.ts +1 -1
- package/dist/toolkits/github/tools/Users/follow-user.d.ts +1 -1
- package/dist/toolkits/github/tools/index.d.ts +4 -4
- package/dist/toolkits/gmail/manifest.js +82 -2
- package/dist/toolkits/gmail/tools/batch-delete-messages.d.ts +26 -0
- package/dist/toolkits/gmail/tools/batch-delete-messages.js +33 -0
- package/dist/toolkits/gmail/tools/batch-modify-messages.d.ts +34 -0
- package/dist/toolkits/gmail/tools/batch-modify-messages.js +39 -0
- package/dist/toolkits/gmail/tools/create-filter.d.ts +24 -0
- package/dist/toolkits/gmail/tools/create-filter.js +35 -0
- package/dist/toolkits/gmail/tools/create-label.d.ts +27 -0
- package/dist/toolkits/gmail/tools/create-label.js +46 -0
- package/dist/toolkits/gmail/tools/delete-filter.d.ts +23 -0
- package/dist/toolkits/gmail/tools/delete-filter.js +31 -0
- package/dist/toolkits/gmail/tools/delete-label.d.ts +23 -0
- package/dist/toolkits/gmail/tools/delete-label.js +31 -0
- package/dist/toolkits/gmail/tools/delete-message.d.ts +23 -0
- package/dist/toolkits/gmail/tools/delete-message.js +31 -0
- package/dist/toolkits/gmail/tools/delete-thread.d.ts +23 -0
- package/dist/toolkits/gmail/tools/delete-thread.js +31 -0
- package/dist/toolkits/gmail/tools/forward-message.d.ts +37 -0
- package/dist/toolkits/gmail/tools/forward-message.js +112 -0
- package/dist/toolkits/gmail/tools/get-attachment.d.ts +40 -0
- package/dist/toolkits/gmail/tools/get-attachment.js +41 -0
- package/dist/toolkits/gmail/tools/get-auto-forwarding.d.ts +22 -0
- package/dist/toolkits/gmail/tools/get-auto-forwarding.js +30 -0
- package/dist/toolkits/gmail/tools/get-contacts.d.ts +8 -0
- package/dist/toolkits/gmail/tools/get-contacts.js +50 -0
- package/dist/toolkits/gmail/tools/get-filter.d.ts +23 -0
- package/dist/toolkits/gmail/tools/get-filter.js +31 -0
- package/dist/toolkits/gmail/tools/index.d.ts +13 -0
- package/dist/toolkits/gmail/tools/index.js +13 -0
- package/dist/toolkits/gmail/tools/utils.d.ts +23 -0
- package/dist/toolkits/gmail/tools/utils.js +51 -0
- package/dist/toolkits/google-forms/icon.d.ts +5 -0
- package/dist/toolkits/google-forms/icon.js +6 -0
- package/dist/toolkits/google-forms/manifest.d.ts +3 -0
- package/dist/toolkits/google-forms/manifest.js +43 -0
- package/dist/toolkits/google-forms/tools/batch-update-form.d.ts +11 -0
- package/dist/toolkits/google-forms/tools/batch-update-form.js +49 -0
- package/dist/toolkits/google-forms/tools/create-form.d.ts +8 -0
- package/dist/toolkits/google-forms/tools/create-form.js +44 -0
- package/dist/toolkits/google-forms/tools/create-watch.d.ts +8 -0
- package/dist/toolkits/google-forms/tools/create-watch.js +48 -0
- package/dist/toolkits/google-forms/tools/delete-watch.d.ts +21 -0
- package/dist/toolkits/google-forms/tools/delete-watch.js +28 -0
- package/dist/toolkits/google-forms/tools/get-form.d.ts +5 -0
- package/dist/toolkits/google-forms/tools/get-form.js +27 -0
- package/dist/toolkits/google-forms/tools/get-response.d.ts +6 -0
- package/dist/toolkits/google-forms/tools/get-response.js +28 -0
- package/dist/toolkits/google-forms/tools/index.d.ts +130 -0
- package/dist/toolkits/google-forms/tools/index.js +85 -0
- package/dist/toolkits/google-forms/tools/list-responses.d.ts +8 -0
- package/dist/toolkits/google-forms/tools/list-responses.js +44 -0
- package/dist/toolkits/google-forms/tools/list-watches.d.ts +5 -0
- package/dist/toolkits/google-forms/tools/list-watches.js +27 -0
- package/dist/toolkits/google-forms/tools/renew-watch.d.ts +6 -0
- package/dist/toolkits/google-forms/tools/renew-watch.js +28 -0
- package/dist/toolkits/google-forms/tools/set-publish-settings.d.ts +8 -0
- package/dist/toolkits/google-forms/tools/set-publish-settings.js +43 -0
- package/dist/toolkits/google-forms/tools/utils.d.ts +15 -0
- package/dist/toolkits/google-forms/tools/utils.js +33 -0
- package/dist/toolkits/google-meet/icon.d.ts +5 -0
- package/dist/toolkits/google-meet/icon.js +153 -0
- package/dist/toolkits/google-meet/manifest.d.ts +3 -0
- package/dist/toolkits/google-meet/manifest.js +44 -0
- package/dist/toolkits/google-meet/tools/create-meet.d.ts +5 -0
- package/dist/toolkits/google-meet/tools/create-meet.js +33 -0
- package/dist/toolkits/google-meet/tools/end-active-conference.d.ts +26 -0
- package/dist/toolkits/google-meet/tools/end-active-conference.js +37 -0
- package/dist/toolkits/google-meet/tools/get-conference-record-by-name.d.ts +5 -0
- package/dist/toolkits/google-meet/tools/get-conference-record-by-name.js +30 -0
- package/dist/toolkits/google-meet/tools/get-meet.d.ts +5 -0
- package/dist/toolkits/google-meet/tools/get-meet.js +30 -0
- package/dist/toolkits/google-meet/tools/get-participant-session.d.ts +5 -0
- package/dist/toolkits/google-meet/tools/get-participant-session.js +29 -0
- package/dist/toolkits/google-meet/tools/get-recordings-by-conference-record-id.d.ts +7 -0
- package/dist/toolkits/google-meet/tools/get-recordings-by-conference-record-id.js +32 -0
- package/dist/toolkits/google-meet/tools/get-transcript-entry.d.ts +5 -0
- package/dist/toolkits/google-meet/tools/get-transcript-entry.js +29 -0
- package/dist/toolkits/google-meet/tools/get-transcript.d.ts +5 -0
- package/dist/toolkits/google-meet/tools/get-transcript.js +29 -0
- package/dist/toolkits/google-meet/tools/get-transcripts-by-conference-record-id.d.ts +7 -0
- package/dist/toolkits/google-meet/tools/get-transcripts-by-conference-record-id.js +32 -0
- package/dist/toolkits/google-meet/tools/index.d.ts +156 -0
- package/dist/toolkits/google-meet/tools/index.js +125 -0
- package/dist/toolkits/google-meet/tools/list-conference-records.d.ts +7 -0
- package/dist/toolkits/google-meet/tools/list-conference-records.js +31 -0
- package/dist/toolkits/google-meet/tools/list-participant-sessions.d.ts +9 -0
- package/dist/toolkits/google-meet/tools/list-participant-sessions.js +34 -0
- package/dist/toolkits/google-meet/tools/list-participants.d.ts +8 -0
- package/dist/toolkits/google-meet/tools/list-participants.js +35 -0
- package/dist/toolkits/google-meet/tools/list-recordings.d.ts +7 -0
- package/dist/toolkits/google-meet/tools/list-recordings.js +34 -0
- package/dist/toolkits/google-meet/tools/list-transcript-entries.d.ts +8 -0
- package/dist/toolkits/google-meet/tools/list-transcript-entries.js +33 -0
- package/dist/toolkits/google-meet/tools/update-space.d.ts +7 -0
- package/dist/toolkits/google-meet/tools/update-space.js +42 -0
- package/dist/toolkits/google-meet/tools/utils.d.ts +14 -0
- package/dist/toolkits/google-meet/tools/utils.js +39 -0
- package/dist/toolkits/google-search-console/icon.d.ts +5 -0
- package/dist/toolkits/google-search-console/icon.js +6 -0
- package/dist/toolkits/google-search-console/manifest.d.ts +3 -0
- package/dist/toolkits/google-search-console/manifest.js +46 -0
- package/dist/toolkits/google-search-console/tools/add-site.d.ts +29 -0
- package/dist/toolkits/google-search-console/tools/add-site.js +27 -0
- package/dist/toolkits/google-search-console/tools/delete-site.d.ts +26 -0
- package/dist/toolkits/google-search-console/tools/delete-site.js +27 -0
- package/dist/toolkits/google-search-console/tools/get-site.d.ts +5 -0
- package/dist/toolkits/google-search-console/tools/get-site.js +27 -0
- package/dist/toolkits/google-search-console/tools/get-sitemap.d.ts +6 -0
- package/dist/toolkits/google-search-console/tools/get-sitemap.js +28 -0
- package/dist/toolkits/google-search-console/tools/index.d.ts +178 -0
- package/dist/toolkits/google-search-console/tools/index.js +77 -0
- package/dist/toolkits/google-search-console/tools/inspect-url.d.ts +7 -0
- package/dist/toolkits/google-search-console/tools/inspect-url.js +41 -0
- package/dist/toolkits/google-search-console/tools/list-sitemaps.d.ts +6 -0
- package/dist/toolkits/google-search-console/tools/list-sitemaps.js +31 -0
- package/dist/toolkits/google-search-console/tools/list-sites.d.ts +4 -0
- package/dist/toolkits/google-search-console/tools/list-sites.js +26 -0
- package/dist/toolkits/google-search-console/tools/search-analytics-query.d.ts +14 -0
- package/dist/toolkits/google-search-console/tools/search-analytics-query.js +73 -0
- package/dist/toolkits/google-search-console/tools/submit-sitemap.d.ts +33 -0
- package/dist/toolkits/google-search-console/tools/submit-sitemap.js +28 -0
- package/dist/toolkits/google-search-console/tools/utils.d.ts +24 -0
- package/dist/toolkits/google-search-console/tools/utils.js +57 -0
- package/dist/toolkits/google-slides/icon.d.ts +5 -0
- package/dist/toolkits/google-slides/icon.js +6 -0
- package/dist/toolkits/google-slides/manifest.d.ts +3 -0
- package/dist/toolkits/google-slides/manifest.js +46 -0
- package/dist/toolkits/google-slides/tools/create-presentation.d.ts +8 -0
- package/dist/toolkits/google-slides/tools/create-presentation.js +42 -0
- package/dist/toolkits/google-slides/tools/create-slides-markdown.d.ts +56 -0
- package/dist/toolkits/google-slides/tools/create-slides-markdown.js +70 -0
- package/dist/toolkits/google-slides/tools/get-page-thumbnail2.d.ts +8 -0
- package/dist/toolkits/google-slides/tools/get-page-thumbnail2.js +41 -0
- package/dist/toolkits/google-slides/tools/index.d.ts +139 -0
- package/dist/toolkits/google-slides/tools/index.js +69 -0
- package/dist/toolkits/google-slides/tools/markdown.d.ts +6 -0
- package/dist/toolkits/google-slides/tools/markdown.js +222 -0
- package/dist/toolkits/google-slides/tools/presentations-batch-update.d.ts +8 -0
- package/dist/toolkits/google-slides/tools/presentations-batch-update.js +58 -0
- package/dist/toolkits/google-slides/tools/presentations-copy-from-template.d.ts +7 -0
- package/dist/toolkits/google-slides/tools/presentations-copy-from-template.js +42 -0
- package/dist/toolkits/google-slides/tools/presentations-get.d.ts +7 -0
- package/dist/toolkits/google-slides/tools/presentations-get.js +58 -0
- package/dist/toolkits/google-slides/tools/presentations-pages-get-thumbnail.d.ts +8 -0
- package/dist/toolkits/google-slides/tools/presentations-pages-get-thumbnail.js +41 -0
- package/dist/toolkits/google-slides/tools/presentations-pages-get.d.ts +6 -0
- package/dist/toolkits/google-slides/tools/presentations-pages-get.js +28 -0
- package/dist/toolkits/google-slides/tools/utils.d.ts +22 -0
- package/dist/toolkits/google-slides/tools/utils.js +51 -0
- package/dist/toolkits/grafana/icon.d.ts +5 -0
- package/dist/toolkits/grafana/icon.js +6 -0
- package/dist/toolkits/grafana/manifest.d.ts +3 -0
- package/dist/toolkits/grafana/manifest.js +31 -0
- package/dist/toolkits/grafana/tools/create-otlp-v1-logs.d.ts +23 -0
- package/dist/toolkits/grafana/tools/create-otlp-v1-logs.js +41 -0
- package/dist/toolkits/grafana/tools/get-distributor-ha-tracker.d.ts +22 -0
- package/dist/toolkits/grafana/tools/get-distributor-ha-tracker.js +33 -0
- package/dist/toolkits/grafana/tools/get-health.d.ts +4 -0
- package/dist/toolkits/grafana/tools/get-health.js +32 -0
- package/dist/toolkits/grafana/tools/get-index-gateway-ring.d.ts +22 -0
- package/dist/toolkits/grafana/tools/get-index-gateway-ring.js +33 -0
- package/dist/toolkits/grafana/tools/get-overrides-exporter-ring.d.ts +22 -0
- package/dist/toolkits/grafana/tools/get-overrides-exporter-ring.js +33 -0
- package/dist/toolkits/grafana/tools/get-ruler-ring.d.ts +22 -0
- package/dist/toolkits/grafana/tools/get-ruler-ring.js +33 -0
- package/dist/toolkits/grafana/tools/get-status.d.ts +22 -0
- package/dist/toolkits/grafana/tools/get-status.js +35 -0
- package/dist/toolkits/grafana/tools/get-store-gateway-tenants.d.ts +25 -0
- package/dist/toolkits/grafana/tools/get-store-gateway-tenants.js +33 -0
- package/dist/toolkits/grafana/tools/index.d.ts +183 -0
- package/dist/toolkits/grafana/tools/index.js +93 -0
- package/dist/toolkits/grafana/tools/post-acs.d.ts +16 -0
- package/dist/toolkits/grafana/tools/post-acs.js +44 -0
- package/dist/toolkits/grafana/tools/query-public-dashboard.d.ts +29 -0
- package/dist/toolkits/grafana/tools/query-public-dashboard.js +70 -0
- package/dist/toolkits/grafana/tools/retrieve-jwks.d.ts +4 -0
- package/dist/toolkits/grafana/tools/retrieve-jwks.js +32 -0
- package/dist/toolkits/grafana/tools/utils.d.ts +21 -0
- package/dist/toolkits/grafana/tools/utils.js +48 -0
- package/package.json +7 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { dockerHubRequest, buildQueryString } from './utils.js';
|
|
5
|
+
export const listOrganizations = tool({
|
|
6
|
+
description: 'List Docker Hub organizations the authenticated user belongs to.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
dockerHubCredentials: z.string().describe('Docker Hub credentials JSON with username and personalAccessToken'),
|
|
9
|
+
page: z.number().int().min(1).optional().describe('Page number (1-indexed)'),
|
|
10
|
+
page_size: z.number().int().min(1).max(100).optional().describe('Results per page'),
|
|
11
|
+
}),
|
|
12
|
+
execute: async ({ dockerHubCredentials, page, page_size }) => {
|
|
13
|
+
try {
|
|
14
|
+
const result = await dockerHubRequest(dockerHubCredentials, `/v2/user/orgs/${buildQueryString({ page: page ?? 1, page_size: page_size ?? 25 })}`);
|
|
15
|
+
if (!result.ok) {
|
|
16
|
+
return { error: 'Failed to list organizations', details: result.data, statusCode: result.status };
|
|
17
|
+
}
|
|
18
|
+
return result.data;
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
return { error: 'Error listing organizations', message: error instanceof Error ? error.message : 'Unknown error' };
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=list-organizations.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const listRepositories: import("ai").Tool<{
|
|
2
|
+
namespace: string;
|
|
3
|
+
dockerHubCredentials: string;
|
|
4
|
+
page?: number | undefined;
|
|
5
|
+
page_size?: number | undefined;
|
|
6
|
+
ordering?: string | undefined;
|
|
7
|
+
media_types?: string | undefined;
|
|
8
|
+
content_types?: string | undefined;
|
|
9
|
+
}, any>;
|
|
10
|
+
//# sourceMappingURL=list-repositories.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { dockerHubRequest, buildQueryString } from './utils.js';
|
|
5
|
+
export const listRepositories = tool({
|
|
6
|
+
description: 'List repositories under a Docker Hub namespace with optional filtering and pagination.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
dockerHubCredentials: z.string().describe('Docker Hub credentials JSON with username and personalAccessToken'),
|
|
9
|
+
namespace: z.string().describe('Docker Hub namespace'),
|
|
10
|
+
page: z.number().int().min(1).optional().describe('Page number (1-indexed)'),
|
|
11
|
+
page_size: z.number().int().min(1).max(100).optional().describe('Results per page'),
|
|
12
|
+
ordering: z.string().optional().describe('Sort field such as last_updated or -pull_count'),
|
|
13
|
+
media_types: z.string().optional().describe('Comma-separated media types filter'),
|
|
14
|
+
content_types: z.string().optional().describe('Comma-separated content types filter'),
|
|
15
|
+
}),
|
|
16
|
+
execute: async ({ dockerHubCredentials, namespace, page, page_size, ordering, media_types, content_types }) => {
|
|
17
|
+
try {
|
|
18
|
+
const result = await dockerHubRequest(dockerHubCredentials, `/v2/namespaces/${encodeURIComponent(namespace)}/repositories${buildQueryString({
|
|
19
|
+
page: page ?? 1,
|
|
20
|
+
page_size: page_size ?? 25,
|
|
21
|
+
ordering,
|
|
22
|
+
media_types,
|
|
23
|
+
content_types,
|
|
24
|
+
})}`);
|
|
25
|
+
if (!result.ok) {
|
|
26
|
+
return { error: 'Failed to list repositories', details: result.data, statusCode: result.status };
|
|
27
|
+
}
|
|
28
|
+
return result.data;
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
return { error: 'Error listing repositories', message: error instanceof Error ? error.message : 'Unknown error' };
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=list-repositories.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const listTeamMembers: import("ai").Tool<{
|
|
2
|
+
dockerHubCredentials: string;
|
|
3
|
+
org_name: string;
|
|
4
|
+
team_name: string;
|
|
5
|
+
page?: number | undefined;
|
|
6
|
+
search?: string | undefined;
|
|
7
|
+
page_size?: number | undefined;
|
|
8
|
+
}, any>;
|
|
9
|
+
//# sourceMappingURL=list-team-members.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { dockerHubRequest, buildQueryString } from './utils.js';
|
|
5
|
+
export const listTeamMembers = tool({
|
|
6
|
+
description: 'List members of a Docker Hub organization team (group).',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
dockerHubCredentials: z.string().describe('Docker Hub credentials JSON with username and personalAccessToken'),
|
|
9
|
+
org_name: z.string().describe('Organization slug/name'),
|
|
10
|
+
team_name: z.string().describe('Team slug/name'),
|
|
11
|
+
page: z.number().int().min(1).optional().describe('Page number (1-indexed)'),
|
|
12
|
+
page_size: z.number().int().min(1).max(100).optional().describe('Results per page'),
|
|
13
|
+
search: z.string().optional().describe('Filter members by username, full name, or email'),
|
|
14
|
+
}),
|
|
15
|
+
execute: async ({ dockerHubCredentials, org_name, team_name, page, page_size, search }) => {
|
|
16
|
+
try {
|
|
17
|
+
const result = await dockerHubRequest(dockerHubCredentials, `/v2/orgs/${encodeURIComponent(org_name)}/groups/${encodeURIComponent(team_name)}/members${buildQueryString({
|
|
18
|
+
page: page ?? 1,
|
|
19
|
+
page_size: page_size ?? 25,
|
|
20
|
+
search,
|
|
21
|
+
})}`);
|
|
22
|
+
if (!result.ok) {
|
|
23
|
+
return { error: 'Failed to list team members', details: result.data, statusCode: result.status };
|
|
24
|
+
}
|
|
25
|
+
return result.data;
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
return { error: 'Error listing team members', message: error instanceof Error ? error.message : 'Unknown error' };
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=list-team-members.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { dockerHubRequest, buildQueryString } from './utils.js';
|
|
5
|
+
export const listTeams = tool({
|
|
6
|
+
description: 'List all teams (groups) within a Docker Hub organization.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
dockerHubCredentials: z.string().describe('Docker Hub credentials JSON with username and personalAccessToken'),
|
|
9
|
+
organization: z.string().describe('Organization slug/name'),
|
|
10
|
+
page: z.number().int().min(1).optional().describe('Page number (1-indexed)'),
|
|
11
|
+
page_size: z.number().int().min(1).max(100).optional().describe('Results per page'),
|
|
12
|
+
}),
|
|
13
|
+
execute: async ({ dockerHubCredentials, organization, page, page_size }) => {
|
|
14
|
+
try {
|
|
15
|
+
const result = await dockerHubRequest(dockerHubCredentials, `/v2/orgs/${encodeURIComponent(organization)}/groups${buildQueryString({ page: page ?? 1, page_size: page_size ?? 25 })}`);
|
|
16
|
+
if (!result.ok) {
|
|
17
|
+
return { error: 'Failed to list teams', details: result.data, statusCode: result.status };
|
|
18
|
+
}
|
|
19
|
+
return result.data;
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
return { error: 'Error listing teams', message: error instanceof Error ? error.message : 'Unknown error' };
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=list-teams.js.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { dockerHubRequest, buildQueryString, normalizeLegacyWebhook } from './utils.js';
|
|
5
|
+
export const listWebhooks = tool({
|
|
6
|
+
description: 'List webhooks configured for a Docker Hub repository.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
dockerHubCredentials: z.string().describe('Docker Hub credentials JSON with username and personalAccessToken'),
|
|
9
|
+
namespace: z.string().describe('Docker Hub namespace'),
|
|
10
|
+
repository: z.string().describe('Repository name'),
|
|
11
|
+
page: z.number().int().min(1).optional().describe('Page number (1-indexed)'),
|
|
12
|
+
page_size: z.number().int().min(1).max(100).optional().describe('Results per page'),
|
|
13
|
+
}),
|
|
14
|
+
execute: async ({ dockerHubCredentials, namespace, repository, page, page_size }) => {
|
|
15
|
+
try {
|
|
16
|
+
const result = await dockerHubRequest(dockerHubCredentials, `/v2/repositories/${encodeURIComponent(namespace)}/${encodeURIComponent(repository)}/webhooks/${buildQueryString({ page, page_size })}`);
|
|
17
|
+
if (!result.ok) {
|
|
18
|
+
return { error: 'Failed to list webhooks', details: result.data, statusCode: result.status };
|
|
19
|
+
}
|
|
20
|
+
const raw = result.data;
|
|
21
|
+
if (Array.isArray(raw)) {
|
|
22
|
+
const results = raw.map((item) => normalizeLegacyWebhook(item));
|
|
23
|
+
return { count: results.length, results, next: null, previous: null };
|
|
24
|
+
}
|
|
25
|
+
if (raw?.results) {
|
|
26
|
+
return {
|
|
27
|
+
...raw,
|
|
28
|
+
results: raw.results.map((item) => normalizeLegacyWebhook(item)),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return raw;
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
return { error: 'Error listing webhooks', message: error instanceof Error ? error.message : 'Unknown error' };
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=list-webhooks.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const removeOrgMember: import("ai").Tool<{
|
|
2
|
+
username: string;
|
|
3
|
+
dockerHubCredentials: string;
|
|
4
|
+
org_name: string;
|
|
5
|
+
}, {
|
|
6
|
+
message: string;
|
|
7
|
+
error?: undefined;
|
|
8
|
+
details?: undefined;
|
|
9
|
+
statusCode?: undefined;
|
|
10
|
+
} | {
|
|
11
|
+
error: string;
|
|
12
|
+
details: any;
|
|
13
|
+
statusCode: number;
|
|
14
|
+
message?: undefined;
|
|
15
|
+
} | {
|
|
16
|
+
error: string;
|
|
17
|
+
message: string;
|
|
18
|
+
details?: undefined;
|
|
19
|
+
statusCode?: undefined;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=remove-org-member.d.ts.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { dockerHubRequest } from './utils.js';
|
|
5
|
+
export const removeOrgMember = tool({
|
|
6
|
+
description: 'Remove a member from a Docker Hub organization.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
dockerHubCredentials: z.string().describe('Docker Hub credentials JSON with username and personalAccessToken'),
|
|
9
|
+
org_name: z.string().describe('Organization slug/name'),
|
|
10
|
+
username: z.string().describe('Docker Hub username to remove'),
|
|
11
|
+
}),
|
|
12
|
+
execute: async ({ dockerHubCredentials, org_name, username }) => {
|
|
13
|
+
try {
|
|
14
|
+
const result = await dockerHubRequest(dockerHubCredentials, `/v2/orgs/${encodeURIComponent(org_name)}/members/${encodeURIComponent(username)}`, { method: 'DELETE' });
|
|
15
|
+
if (result.ok || result.status === 404) {
|
|
16
|
+
return { message: 'Member successfully removed from organization' };
|
|
17
|
+
}
|
|
18
|
+
return { error: 'Failed to remove organization member', details: result.data, statusCode: result.status };
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
return { error: 'Error removing organization member', message: error instanceof Error ? error.message : 'Unknown error' };
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=remove-org-member.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const removeTeamMember: import("ai").Tool<{
|
|
2
|
+
username: string;
|
|
3
|
+
team_slug: string;
|
|
4
|
+
dockerHubCredentials: string;
|
|
5
|
+
org_name: string;
|
|
6
|
+
}, {
|
|
7
|
+
success: boolean;
|
|
8
|
+
message: string;
|
|
9
|
+
error?: undefined;
|
|
10
|
+
details?: undefined;
|
|
11
|
+
statusCode?: undefined;
|
|
12
|
+
} | {
|
|
13
|
+
error: string;
|
|
14
|
+
details: any;
|
|
15
|
+
statusCode: number;
|
|
16
|
+
success?: undefined;
|
|
17
|
+
message?: undefined;
|
|
18
|
+
} | {
|
|
19
|
+
error: string;
|
|
20
|
+
message: string;
|
|
21
|
+
success?: undefined;
|
|
22
|
+
details?: undefined;
|
|
23
|
+
statusCode?: undefined;
|
|
24
|
+
}>;
|
|
25
|
+
//# sourceMappingURL=remove-team-member.d.ts.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import { tool } from 'ai';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { dockerHubRequest } from './utils.js';
|
|
5
|
+
export const removeTeamMember = tool({
|
|
6
|
+
description: 'Remove a user from a Docker Hub organization team (group).',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
dockerHubCredentials: z.string().describe('Docker Hub credentials JSON with username and personalAccessToken'),
|
|
9
|
+
org_name: z.string().describe('Organization slug/name'),
|
|
10
|
+
team_slug: z.string().describe('Team slug/name'),
|
|
11
|
+
username: z.string().describe('Docker Hub username to remove from the team'),
|
|
12
|
+
}),
|
|
13
|
+
execute: async ({ dockerHubCredentials, org_name, team_slug, username }) => {
|
|
14
|
+
try {
|
|
15
|
+
const result = await dockerHubRequest(dockerHubCredentials, `/v2/orgs/${encodeURIComponent(org_name)}/groups/${encodeURIComponent(team_slug)}/members/${encodeURIComponent(username)}`, { method: 'DELETE' });
|
|
16
|
+
if (result.ok || result.status === 404) {
|
|
17
|
+
return { success: true, message: 'Member removed from team successfully' };
|
|
18
|
+
}
|
|
19
|
+
return { error: 'Failed to remove team member', details: result.data, statusCode: result.status };
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
return { error: 'Error removing team member', message: error instanceof Error ? error.message : 'Unknown error' };
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=remove-team-member.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const DOCKER_HUB_BASE = "https://hub.docker.com";
|
|
2
|
+
export interface DockerHubCredentials {
|
|
3
|
+
username: string;
|
|
4
|
+
personalAccessToken: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function parseDockerHubCredentials(raw: string): DockerHubCredentials;
|
|
7
|
+
export declare function buildQueryString(params: Record<string, unknown>): string;
|
|
8
|
+
export declare function dockerHubRequest(dockerHubCredentials: string, path: string, options?: {
|
|
9
|
+
method?: string;
|
|
10
|
+
body?: unknown;
|
|
11
|
+
auth?: boolean;
|
|
12
|
+
acceptJson?: boolean;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
ok: boolean;
|
|
15
|
+
status: number;
|
|
16
|
+
data: any;
|
|
17
|
+
contentType: string;
|
|
18
|
+
}>;
|
|
19
|
+
export declare const credentialsSchema: {
|
|
20
|
+
dockerHubCredentials: {
|
|
21
|
+
describe: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
export const DOCKER_HUB_BASE = 'https://hub.docker.com';
|
|
3
|
+
export function parseDockerHubCredentials(raw) {
|
|
4
|
+
const parsed = JSON.parse(raw);
|
|
5
|
+
if (!parsed.username || !parsed.personalAccessToken) {
|
|
6
|
+
throw new Error('Docker Hub credentials must include username and personalAccessToken');
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
username: parsed.username,
|
|
10
|
+
personalAccessToken: parsed.personalAccessToken,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
let tokenCache = null;
|
|
14
|
+
async function getAccessToken(credentials) {
|
|
15
|
+
const cacheKey = `${credentials.username}:${credentials.personalAccessToken.slice(0, 8)}`;
|
|
16
|
+
if (tokenCache && tokenCache.key === cacheKey && tokenCache.expiresAt > Date.now()) {
|
|
17
|
+
return tokenCache.token;
|
|
18
|
+
}
|
|
19
|
+
const response = await fetch(`${DOCKER_HUB_BASE}/v2/auth/token`, {
|
|
20
|
+
method: 'POST',
|
|
21
|
+
headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
|
|
22
|
+
body: JSON.stringify({
|
|
23
|
+
identifier: credentials.username,
|
|
24
|
+
secret: credentials.personalAccessToken,
|
|
25
|
+
}),
|
|
26
|
+
});
|
|
27
|
+
const data = await response.json().catch(() => null);
|
|
28
|
+
if (!response.ok) {
|
|
29
|
+
throw new Error(data?.message ?? data?.detail ?? 'Failed to authenticate with Docker Hub');
|
|
30
|
+
}
|
|
31
|
+
const token = data?.access_token ?? data?.token;
|
|
32
|
+
if (!token) {
|
|
33
|
+
throw new Error('Docker Hub auth response did not include an access token');
|
|
34
|
+
}
|
|
35
|
+
tokenCache = { key: cacheKey, token, expiresAt: Date.now() + 8 * 60 * 1000 };
|
|
36
|
+
return token;
|
|
37
|
+
}
|
|
38
|
+
export function buildQueryString(params) {
|
|
39
|
+
const search = new URLSearchParams();
|
|
40
|
+
for (const [key, value] of Object.entries(params)) {
|
|
41
|
+
if (value !== undefined && value !== null && value !== '') {
|
|
42
|
+
search.set(key, String(value));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const qs = search.toString();
|
|
46
|
+
return qs ? `?${qs}` : '';
|
|
47
|
+
}
|
|
48
|
+
export async function dockerHubRequest(dockerHubCredentials, path, options) {
|
|
49
|
+
const credentials = parseDockerHubCredentials(dockerHubCredentials);
|
|
50
|
+
const url = `${DOCKER_HUB_BASE}${path.startsWith('/') ? path : `/${path}`}`;
|
|
51
|
+
const headers = {};
|
|
52
|
+
if (options?.acceptJson !== false) {
|
|
53
|
+
headers.Accept = 'application/json';
|
|
54
|
+
}
|
|
55
|
+
if (options?.body !== undefined) {
|
|
56
|
+
headers['Content-Type'] = 'application/json';
|
|
57
|
+
}
|
|
58
|
+
if (options?.auth !== false) {
|
|
59
|
+
const token = await getAccessToken(credentials);
|
|
60
|
+
headers.Authorization = `Bearer ${token}`;
|
|
61
|
+
}
|
|
62
|
+
const fetchOptions = {
|
|
63
|
+
method: options?.method ?? 'GET',
|
|
64
|
+
headers,
|
|
65
|
+
};
|
|
66
|
+
if (options?.body !== undefined) {
|
|
67
|
+
fetchOptions.body =
|
|
68
|
+
typeof options.body === 'string' ? options.body : JSON.stringify(options.body);
|
|
69
|
+
}
|
|
70
|
+
const response = await fetch(url, fetchOptions);
|
|
71
|
+
const contentType = response.headers.get('content-type') ?? '';
|
|
72
|
+
if (response.status === 204 || response.status === 202) {
|
|
73
|
+
return { ok: response.ok, status: response.status, data: null, contentType };
|
|
74
|
+
}
|
|
75
|
+
if (contentType.includes('application/json')) {
|
|
76
|
+
const data = await response.json().catch(() => null);
|
|
77
|
+
return { ok: response.ok, status: response.status, data, contentType };
|
|
78
|
+
}
|
|
79
|
+
const text = await response.text();
|
|
80
|
+
return { ok: response.ok, status: response.status, data: text, contentType };
|
|
81
|
+
}
|
|
82
|
+
export const credentialsSchema = {
|
|
83
|
+
dockerHubCredentials: {
|
|
84
|
+
describe: 'Docker Hub credentials JSON with username and personalAccessToken (PAT from Account Settings)',
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=utils.js.map
|