@@ -3,53 +3,71 @@ import type { z } from 'zod'
33import {
44 executeEc2AllocateAddress ,
55 executeEc2AssociateAddress ,
6+ executeEc2AuthorizeSecurityGroupIngress ,
67 executeEc2CreateSnapshot ,
78 executeEc2CreateTags ,
9+ executeEc2DeleteSnapshot ,
810 executeEc2DeleteTags ,
11+ executeEc2DeleteVolume ,
912 executeEc2DescribeAddresses ,
1013 executeEc2DescribeAvailabilityZones ,
14+ executeEc2DescribeImages ,
1115 executeEc2DescribeInstanceStatus ,
1216 executeEc2DescribeInstances ,
1317 executeEc2DescribeInternetGateways ,
18+ executeEc2DescribeKeyPairs ,
1419 executeEc2DescribeNatGateways ,
20+ executeEc2DescribeNetworkAcls ,
1521 executeEc2DescribeNetworkInterfaces ,
1622 executeEc2DescribeRegions ,
1723 executeEc2DescribeRouteTables ,
1824 executeEc2DescribeSecurityGroups ,
1925 executeEc2DescribeSnapshots ,
2026 executeEc2DescribeSubnets ,
2127 executeEc2DescribeVolumes ,
28+ executeEc2DescribeVpcEndpoints ,
29+ executeEc2DescribeVpcPeeringConnections ,
2230 executeEc2DescribeVpcs ,
2331 executeEc2DisassociateAddress ,
2432 executeEc2RebootInstances ,
2533 executeEc2ReleaseAddress ,
34+ executeEc2RevokeSecurityGroupIngress ,
2635 executeEc2StartInstances ,
2736 executeEc2StopInstances ,
2837 executeEc2TerminateInstances ,
2938} from '@/lib/internal/ec2/operations'
3039import {
3140 ec2AllocateAddressInputSchema ,
3241 ec2AssociateAddressInputSchema ,
42+ ec2AuthorizeSecurityGroupIngressInputSchema ,
3343 ec2CreateSnapshotInputSchema ,
3444 ec2CreateTagsInputSchema ,
45+ ec2DeleteSnapshotInputSchema ,
3546 ec2DeleteTagsInputSchema ,
47+ ec2DeleteVolumeInputSchema ,
3648 ec2DescribeAddressesInputSchema ,
3749 ec2DescribeAvailabilityZonesInputSchema ,
50+ ec2DescribeImagesInputSchema ,
3851 ec2DescribeInstanceStatusInputSchema ,
3952 ec2DescribeInstancesInputSchema ,
4053 ec2DescribeInternetGatewaysInputSchema ,
54+ ec2DescribeKeyPairsInputSchema ,
4155 ec2DescribeNatGatewaysInputSchema ,
56+ ec2DescribeNetworkAclsInputSchema ,
4257 ec2DescribeNetworkInterfacesInputSchema ,
4358 ec2DescribeRegionsInputSchema ,
4459 ec2DescribeRouteTablesInputSchema ,
4560 ec2DescribeSecurityGroupsInputSchema ,
4661 ec2DescribeSnapshotsInputSchema ,
4762 ec2DescribeSubnetsInputSchema ,
4863 ec2DescribeVolumesInputSchema ,
64+ ec2DescribeVpcEndpointsInputSchema ,
65+ ec2DescribeVpcPeeringConnectionsInputSchema ,
4966 ec2DescribeVpcsInputSchema ,
5067 ec2DisassociateAddressInputSchema ,
5168 ec2InstanceIdsInputSchema ,
5269 ec2ReleaseAddressInputSchema ,
70+ ec2RevokeSecurityGroupIngressInputSchema ,
5371 ec2StopInstancesInputSchema ,
5472} from '@/lib/internal/ec2/schema'
5573import type { InternalToolOperationHandler } from '@/lib/internal/tool-operations/types'
@@ -285,6 +303,78 @@ export const executeEc2Tool: InternalToolOperationHandler = async ({ toolId, inp
285303 'Failed to describe availability zones' ,
286304 signal
287305 )
306+ case 'ec2_describe_network_acls' :
307+ return executeOperation (
308+ ec2DescribeNetworkAclsInputSchema ,
309+ input ,
310+ executeEc2DescribeNetworkAcls ,
311+ 'Failed to describe network ACLs' ,
312+ signal
313+ )
314+ case 'ec2_describe_vpc_endpoints' :
315+ return executeOperation (
316+ ec2DescribeVpcEndpointsInputSchema ,
317+ input ,
318+ executeEc2DescribeVpcEndpoints ,
319+ 'Failed to describe VPC endpoints' ,
320+ signal
321+ )
322+ case 'ec2_describe_vpc_peering_connections' :
323+ return executeOperation (
324+ ec2DescribeVpcPeeringConnectionsInputSchema ,
325+ input ,
326+ executeEc2DescribeVpcPeeringConnections ,
327+ 'Failed to describe VPC peering connections' ,
328+ signal
329+ )
330+ case 'ec2_describe_images' :
331+ return executeOperation (
332+ ec2DescribeImagesInputSchema ,
333+ input ,
334+ executeEc2DescribeImages ,
335+ 'Failed to describe AMIs' ,
336+ signal
337+ )
338+ case 'ec2_describe_key_pairs' :
339+ return executeOperation (
340+ ec2DescribeKeyPairsInputSchema ,
341+ input ,
342+ executeEc2DescribeKeyPairs ,
343+ 'Failed to describe key pairs' ,
344+ signal
345+ )
346+ case 'ec2_authorize_security_group_ingress' :
347+ return executeOperation (
348+ ec2AuthorizeSecurityGroupIngressInputSchema ,
349+ input ,
350+ executeEc2AuthorizeSecurityGroupIngress ,
351+ 'Failed to authorize security group ingress' ,
352+ signal
353+ )
354+ case 'ec2_revoke_security_group_ingress' :
355+ return executeOperation (
356+ ec2RevokeSecurityGroupIngressInputSchema ,
357+ input ,
358+ executeEc2RevokeSecurityGroupIngress ,
359+ 'Failed to revoke security group ingress' ,
360+ signal
361+ )
362+ case 'ec2_delete_volume' :
363+ return executeOperation (
364+ ec2DeleteVolumeInputSchema ,
365+ input ,
366+ executeEc2DeleteVolume ,
367+ 'Failed to delete EBS volume' ,
368+ signal
369+ )
370+ case 'ec2_delete_snapshot' :
371+ return executeOperation (
372+ ec2DeleteSnapshotInputSchema ,
373+ input ,
374+ executeEc2DeleteSnapshot ,
375+ 'Failed to delete EBS snapshot' ,
376+ signal
377+ )
288378 default :
289379 return Response . json ( { error : `Unsupported EC2 tool: ${ toolId } ` } , { status : 500 } )
290380 }
0 commit comments