@jaypie/mcp 0.7.45 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/suite.d.ts +1 -3
  2. package/dist/suite.js +1 -9
  3. package/dist/suite.js.map +1 -1
  4. package/dist/suites/docs/index.js +2 -9
  5. package/dist/suites/docs/index.js.map +1 -1
  6. package/package.json +1 -2
  7. package/release-notes/aws/1.2.7.md +13 -0
  8. package/release-notes/constructs/1.2.36.md +9 -0
  9. package/release-notes/jaypie/1.2.24.md +11 -0
  10. package/release-notes/llm/1.2.19.md +11 -0
  11. package/release-notes/mcp/0.8.0.md +21 -0
  12. package/skills/agents.md +4 -3
  13. package/skills/aws.md +1 -6
  14. package/skills/contents.md +1 -1
  15. package/skills/datadog.md +3 -3
  16. package/skills/dynamodb.md +1 -6
  17. package/skills/fabric.md +1 -1
  18. package/skills/llm.md +1 -0
  19. package/skills/{tools-datadog.md → mcp-datadog.md} +4 -4
  20. package/skills/mcp.md +63 -0
  21. package/skills/meta.md +3 -3
  22. package/skills/practice.md +10 -0
  23. package/skills/skills.md +2 -2
  24. package/skills/tildeskill.md +1 -1
  25. package/skills/tools.md +170 -85
  26. package/dist/suites/aws/aws.d.ts +0 -207
  27. package/dist/suites/aws/aws.js +0 -369
  28. package/dist/suites/aws/aws.js.map +0 -1
  29. package/dist/suites/aws/help.md +0 -87
  30. package/dist/suites/aws/index.d.ts +0 -68
  31. package/dist/suites/aws/index.js +0 -397
  32. package/dist/suites/aws/index.js.map +0 -1
  33. package/dist/suites/llm/help.md +0 -58
  34. package/dist/suites/llm/index.d.ts +0 -2
  35. package/dist/suites/llm/index.js +0 -77
  36. package/dist/suites/llm/index.js.map +0 -1
  37. package/dist/suites/llm/llm.d.ts +0 -53
  38. package/dist/suites/llm/llm.js +0 -111
  39. package/dist/suites/llm/llm.js.map +0 -1
  40. package/skills/index.md +0 -18
  41. package/skills/tools-aws.md +0 -208
  42. package/skills/tools-dynamodb.md +0 -179
  43. package/skills/tools-llm.md +0 -109
@@ -1,369 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- import * as fs from 'node:fs/promises';
3
- import * as os from 'node:os';
4
- import * as path from 'node:path';
5
-
6
- /**
7
- * AWS CLI integration module
8
- * Provides a structured interface for common AWS operations via the AWS CLI
9
- */
10
- const nullLogger = {
11
- info: () => { },
12
- error: () => { },
13
- };
14
- /**
15
- * Parse AWS CLI error messages into user-friendly descriptions
16
- */
17
- function parseAwsError(stderr, service, command) {
18
- if (stderr.includes("ExpiredToken") || stderr.includes("Token has expired")) {
19
- return "AWS credentials have expired. Run 'aws sso login' or refresh your credentials.";
20
- }
21
- if (stderr.includes("NoCredentialProviders") ||
22
- stderr.includes("Unable to locate credentials")) {
23
- return "No AWS credentials found. Configure credentials with 'aws configure' or 'aws sso login'.";
24
- }
25
- if (stderr.includes("AccessDenied") || stderr.includes("Access Denied")) {
26
- return `Access denied for ${service}:${command}. Check your IAM permissions.`;
27
- }
28
- if (stderr.includes("ResourceNotFoundException")) {
29
- return `Resource not found. Check that the specified resource exists in the correct region.`;
30
- }
31
- if (stderr.includes("ValidationException")) {
32
- const match = stderr.match(/ValidationException[^:]*:\s*(.+)/);
33
- return match
34
- ? `Validation error: ${match[1].trim()}`
35
- : "Validation error in request parameters.";
36
- }
37
- if (stderr.includes("ThrottlingException") ||
38
- stderr.includes("Rate exceeded")) {
39
- return "AWS API rate limit exceeded. Wait a moment and try again.";
40
- }
41
- if (stderr.includes("InvalidParameterValue")) {
42
- const match = stderr.match(/InvalidParameterValue[^:]*:\s*(.+)/);
43
- return match
44
- ? `Invalid parameter: ${match[1].trim()}`
45
- : "Invalid parameter value provided.";
46
- }
47
- return stderr.trim();
48
- }
49
- /**
50
- * Parse relative time strings like 'now-1h' to Unix timestamps
51
- */
52
- function parseRelativeTime(timeStr) {
53
- const now = Date.now();
54
- if (timeStr === "now") {
55
- return now;
56
- }
57
- // Handle relative time like 'now-15m', 'now-1h', 'now-1d'
58
- const relativeMatch = timeStr.match(/^now-(\d+)([smhd])$/);
59
- if (relativeMatch) {
60
- const value = parseInt(relativeMatch[1], 10);
61
- const unit = relativeMatch[2];
62
- const multipliers = {
63
- s: 1000,
64
- m: 60 * 1000,
65
- h: 60 * 60 * 1000,
66
- d: 24 * 60 * 60 * 1000,
67
- };
68
- return now - value * multipliers[unit];
69
- }
70
- // Handle ISO 8601 format
71
- const parsed = Date.parse(timeStr);
72
- if (!isNaN(parsed)) {
73
- return parsed;
74
- }
75
- // Default to the current time if parsing fails
76
- return now;
77
- }
78
- /**
79
- * Execute an AWS CLI command and return parsed JSON output
80
- */
81
- async function executeAwsCommand(service, command, args, options = {}, logger = nullLogger) {
82
- const fullArgs = [service, command, ...args, "--output", "json"];
83
- if (options.profile) {
84
- fullArgs.push("--profile", options.profile);
85
- }
86
- if (options.region) {
87
- fullArgs.push("--region", options.region);
88
- }
89
- logger.info(`Executing: aws ${fullArgs.join(" ")}`);
90
- return new Promise((resolve) => {
91
- const proc = spawn("aws", fullArgs);
92
- let stdout = "";
93
- let stderr = "";
94
- proc.stdout.on("data", (data) => {
95
- stdout += data.toString();
96
- });
97
- proc.stderr.on("data", (data) => {
98
- stderr += data.toString();
99
- });
100
- proc.on("close", (code) => {
101
- if (code !== 0) {
102
- logger.error(`AWS CLI error: ${stderr}`);
103
- resolve({
104
- success: false,
105
- error: parseAwsError(stderr, service, command),
106
- });
107
- return;
108
- }
109
- // Handle empty output (some commands return nothing on success)
110
- if (!stdout.trim()) {
111
- resolve({ success: true });
112
- return;
113
- }
114
- try {
115
- const data = JSON.parse(stdout);
116
- resolve({ success: true, data });
117
- }
118
- catch {
119
- // Some commands return plain text
120
- resolve({ success: true, data: stdout.trim() });
121
- }
122
- });
123
- proc.on("error", (error) => {
124
- if (error.message.includes("ENOENT")) {
125
- resolve({
126
- success: false,
127
- error: "AWS CLI not found. Install it from https://aws.amazon.com/cli/",
128
- });
129
- }
130
- else {
131
- resolve({ success: false, error: error.message });
132
- }
133
- });
134
- });
135
- }
136
- /**
137
- * Check if AWS CLI is available and get its version
138
- */
139
- async function checkAwsCliVersion() {
140
- return new Promise((resolve) => {
141
- const proc = spawn("aws", ["--version"]);
142
- let stdout = "";
143
- proc.stdout.on("data", (data) => {
144
- stdout += data.toString();
145
- });
146
- proc.on("close", (code) => {
147
- if (code === 0) {
148
- // Output is like "aws-cli/2.15.0 Python/3.11.6 Darwin/23.2.0 source/arm64"
149
- const match = stdout.match(/aws-cli\/([\d.]+)/);
150
- resolve({
151
- available: true,
152
- version: match ? match[1] : stdout.trim(),
153
- });
154
- }
155
- else {
156
- resolve({ available: false });
157
- }
158
- });
159
- proc.on("error", () => {
160
- resolve({ available: false });
161
- });
162
- });
163
- }
164
- /**
165
- * Validate AWS setup without making API calls
166
- */
167
- async function validateAwsSetup() {
168
- const cliCheck = await checkAwsCliVersion();
169
- const profilesResult = await listAwsProfiles();
170
- return {
171
- cliAvailable: cliCheck.available,
172
- cliVersion: cliCheck.version,
173
- profiles: profilesResult.success ? (profilesResult.data ?? []) : [],
174
- success: cliCheck.available,
175
- };
176
- }
177
- /**
178
- * List available AWS profiles from ~/.aws/config and ~/.aws/credentials
179
- */
180
- async function listAwsProfiles(logger = nullLogger) {
181
- const profiles = [];
182
- const homeDir = os.homedir();
183
- try {
184
- // Parse ~/.aws/config
185
- const configPath = path.join(homeDir, ".aws", "config");
186
- try {
187
- const configContent = await fs.readFile(configPath, "utf-8");
188
- const profileRegex = /\[profile\s+([^\]]+)\]|\[default\]/g;
189
- let match;
190
- while ((match = profileRegex.exec(configContent)) !== null) {
191
- const name = match[1] || "default";
192
- profiles.push({
193
- name,
194
- source: "config",
195
- });
196
- }
197
- logger.info(`Found ${profiles.length} profiles in config`);
198
- }
199
- catch {
200
- logger.info("No ~/.aws/config file found");
201
- }
202
- // Parse ~/.aws/credentials
203
- const credentialsPath = path.join(homeDir, ".aws", "credentials");
204
- try {
205
- const credentialsContent = await fs.readFile(credentialsPath, "utf-8");
206
- const profileRegex = /\[([^\]]+)\]/g;
207
- let match;
208
- while ((match = profileRegex.exec(credentialsContent)) !== null) {
209
- const name = match[1];
210
- // Only add if not already in the list
211
- if (!profiles.find((p) => p.name === name)) {
212
- profiles.push({
213
- name,
214
- source: "credentials",
215
- });
216
- }
217
- }
218
- logger.info(`Total profiles after credentials: ${profiles.length}`);
219
- }
220
- catch {
221
- logger.info("No ~/.aws/credentials file found");
222
- }
223
- return { success: true, data: profiles };
224
- }
225
- catch (error) {
226
- const errorMessage = error instanceof Error ? error.message : "Unknown error";
227
- logger.error(`Error listing profiles: ${errorMessage}`);
228
- return { success: false, error: errorMessage };
229
- }
230
- }
231
- // Step Functions operations
232
- async function listStepFunctionExecutions(options, logger = nullLogger) {
233
- const args = ["--state-machine-arn", options.stateMachineArn];
234
- if (options.statusFilter) {
235
- args.push("--status-filter", options.statusFilter);
236
- }
237
- if (options.maxResults) {
238
- args.push("--max-results", String(options.maxResults));
239
- }
240
- return executeAwsCommand("stepfunctions", "list-executions", args, { profile: options.profile, region: options.region }, logger);
241
- }
242
- async function stopStepFunctionExecution(options, logger = nullLogger) {
243
- const args = ["--execution-arn", options.executionArn];
244
- if (options.cause) {
245
- args.push("--cause", options.cause);
246
- }
247
- return executeAwsCommand("stepfunctions", "stop-execution", args, { profile: options.profile, region: options.region }, logger);
248
- }
249
- // Lambda operations
250
- async function listLambdaFunctions(options = {}, logger = nullLogger) {
251
- const args = [];
252
- if (options.maxResults) {
253
- args.push("--max-items", String(options.maxResults));
254
- }
255
- const result = await executeAwsCommand("lambda", "list-functions", args, { profile: options.profile, region: options.region }, logger);
256
- // Filter by prefix if specified
257
- if (result.success && result.data && options.functionNamePrefix) {
258
- result.data.Functions = result.data.Functions.filter((f) => f.FunctionName.startsWith(options.functionNamePrefix));
259
- }
260
- return result;
261
- }
262
- async function getLambdaFunction(options, logger = nullLogger) {
263
- return executeAwsCommand("lambda", "get-function", ["--function-name", options.functionName], { profile: options.profile, region: options.region }, logger);
264
- }
265
- // CloudWatch Logs operations
266
- async function filterLogEvents(options, logger = nullLogger) {
267
- const args = ["--log-group-name", options.logGroupName];
268
- if (options.filterPattern) {
269
- args.push("--filter-pattern", options.filterPattern);
270
- }
271
- if (options.startTime) {
272
- const startMs = parseRelativeTime(options.startTime);
273
- args.push("--start-time", String(startMs));
274
- }
275
- if (options.endTime) {
276
- const endMs = parseRelativeTime(options.endTime);
277
- args.push("--end-time", String(endMs));
278
- }
279
- if (options.limit) {
280
- args.push("--limit", String(options.limit));
281
- }
282
- return executeAwsCommand("logs", "filter-log-events", args, { profile: options.profile, region: options.region }, logger);
283
- }
284
- // S3 operations
285
- async function listS3Objects(options, logger = nullLogger) {
286
- const args = ["--bucket", options.bucket];
287
- if (options.prefix) {
288
- args.push("--prefix", options.prefix);
289
- }
290
- if (options.maxResults) {
291
- args.push("--max-items", String(options.maxResults));
292
- }
293
- return executeAwsCommand("s3api", "list-objects-v2", args, { profile: options.profile, region: options.region }, logger);
294
- }
295
- // CloudFormation operations
296
- async function describeStack(options, logger = nullLogger) {
297
- return executeAwsCommand("cloudformation", "describe-stacks", ["--stack-name", options.stackName], { profile: options.profile, region: options.region }, logger);
298
- }
299
- // DynamoDB operations
300
- async function describeDynamoDBTable(options, logger = nullLogger) {
301
- return executeAwsCommand("dynamodb", "describe-table", ["--table-name", options.tableName], { profile: options.profile, region: options.region }, logger);
302
- }
303
- async function scanDynamoDB(options, logger = nullLogger) {
304
- const args = ["--table-name", options.tableName];
305
- if (options.filterExpression) {
306
- args.push("--filter-expression", options.filterExpression);
307
- }
308
- if (options.expressionAttributeValues) {
309
- args.push("--expression-attribute-values", options.expressionAttributeValues);
310
- }
311
- if (options.limit) {
312
- args.push("--limit", String(options.limit));
313
- }
314
- return executeAwsCommand("dynamodb", "scan", args, { profile: options.profile, region: options.region }, logger);
315
- }
316
- async function queryDynamoDB(options, logger = nullLogger) {
317
- const args = [
318
- "--table-name",
319
- options.tableName,
320
- "--key-condition-expression",
321
- options.keyConditionExpression,
322
- "--expression-attribute-values",
323
- options.expressionAttributeValues,
324
- ];
325
- if (options.indexName) {
326
- args.push("--index-name", options.indexName);
327
- }
328
- if (options.filterExpression) {
329
- args.push("--filter-expression", options.filterExpression);
330
- }
331
- if (options.limit) {
332
- args.push("--limit", String(options.limit));
333
- }
334
- if (options.scanIndexForward === false) {
335
- args.push("--no-scan-index-forward");
336
- }
337
- return executeAwsCommand("dynamodb", "query", args, { profile: options.profile, region: options.region }, logger);
338
- }
339
- async function getDynamoDBItem(options, logger = nullLogger) {
340
- return executeAwsCommand("dynamodb", "get-item", ["--table-name", options.tableName, "--key", options.key], { profile: options.profile, region: options.region }, logger);
341
- }
342
- // SQS operations
343
- async function listSQSQueues(options = {}, logger = nullLogger) {
344
- const args = [];
345
- if (options.queueNamePrefix) {
346
- args.push("--queue-name-prefix", options.queueNamePrefix);
347
- }
348
- return executeAwsCommand("sqs", "list-queues", args, { profile: options.profile, region: options.region }, logger);
349
- }
350
- async function getSQSQueueAttributes(options, logger = nullLogger) {
351
- return executeAwsCommand("sqs", "get-queue-attributes", ["--queue-url", options.queueUrl, "--attribute-names", "All"], { profile: options.profile, region: options.region }, logger);
352
- }
353
- async function receiveSQSMessage(options, logger = nullLogger) {
354
- const args = ["--queue-url", options.queueUrl];
355
- if (options.maxNumberOfMessages) {
356
- args.push("--max-number-of-messages", String(options.maxNumberOfMessages));
357
- }
358
- if (options.visibilityTimeout) {
359
- args.push("--visibility-timeout", String(options.visibilityTimeout));
360
- }
361
- args.push("--attribute-names", "All");
362
- return executeAwsCommand("sqs", "receive-message", args, { profile: options.profile, region: options.region }, logger);
363
- }
364
- async function purgeSQSQueue(options, logger = nullLogger) {
365
- return executeAwsCommand("sqs", "purge-queue", ["--queue-url", options.queueUrl], { profile: options.profile, region: options.region }, logger);
366
- }
367
-
368
- export { describeDynamoDBTable, describeStack, executeAwsCommand, filterLogEvents, getDynamoDBItem, getLambdaFunction, getSQSQueueAttributes, listAwsProfiles, listLambdaFunctions, listS3Objects, listSQSQueues, listStepFunctionExecutions, purgeSQSQueue, queryDynamoDB, receiveSQSMessage, scanDynamoDB, stopStepFunctionExecution, validateAwsSetup };
369
- //# sourceMappingURL=aws.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aws.js","sources":["../../../src/suites/aws/aws.ts"],"sourcesContent":["/**\n * AWS CLI integration module\n * Provides a structured interface for common AWS operations via the AWS CLI\n */\nimport { spawn } from \"node:child_process\";\nimport * as fs from \"node:fs/promises\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\n// Logger interface matching the pattern from datadog.ts\ninterface Logger {\n info: (message: string, ...args: unknown[]) => void;\n error: (message: string, ...args: unknown[]) => void;\n}\n\nconst nullLogger: Logger = {\n info: () => {},\n error: () => {},\n};\n\n// Common AWS command options\nexport interface AwsCommandOptions {\n profile?: string;\n region?: string;\n}\n\n// Generic result type for AWS commands\nexport interface AwsCommandResult<T> {\n success: boolean;\n data?: T;\n error?: string;\n}\n\n// Step Functions types\nexport interface StepFunctionExecution {\n executionArn: string;\n stateMachineArn: string;\n name: string;\n status: string;\n startDate: string;\n stopDate?: string;\n}\n\nexport interface StepFunctionsListExecutionsOptions extends AwsCommandOptions {\n stateMachineArn: string;\n statusFilter?:\n | \"RUNNING\"\n | \"SUCCEEDED\"\n | \"FAILED\"\n | \"TIMED_OUT\"\n | \"ABORTED\"\n | \"PENDING_REDRIVE\";\n maxResults?: number;\n}\n\nexport interface StepFunctionsStopExecutionOptions extends AwsCommandOptions {\n executionArn: string;\n cause?: string;\n}\n\n// Lambda types\nexport interface LambdaFunction {\n FunctionName: string;\n FunctionArn: string;\n Runtime?: string;\n Handler?: string;\n CodeSize: number;\n Description?: string;\n Timeout?: number;\n MemorySize?: number;\n LastModified: string;\n Version?: string;\n}\n\nexport interface LambdaListFunctionsOptions extends AwsCommandOptions {\n functionNamePrefix?: string;\n maxResults?: number;\n}\n\nexport interface LambdaGetFunctionOptions extends AwsCommandOptions {\n functionName: string;\n}\n\n// CloudWatch Logs types\nexport interface LogEvent {\n timestamp: number;\n message: string;\n ingestionTime?: number;\n logStreamName?: string;\n}\n\nexport interface CloudWatchLogsFilterOptions extends AwsCommandOptions {\n logGroupName: string;\n filterPattern?: string;\n startTime?: string;\n endTime?: string;\n limit?: number;\n}\n\n// S3 types\nexport interface S3Object {\n Key: string;\n LastModified: string;\n ETag: string;\n Size: number;\n StorageClass: string;\n}\n\nexport interface S3ListObjectsOptions extends AwsCommandOptions {\n bucket: string;\n prefix?: string;\n maxResults?: number;\n}\n\n// CloudFormation types\nexport interface CloudFormationStack {\n StackName: string;\n StackId: string;\n StackStatus: string;\n StackStatusReason?: string;\n CreationTime: string;\n LastUpdatedTime?: string;\n Description?: string;\n Outputs?: Array<{\n OutputKey: string;\n OutputValue: string;\n Description?: string;\n }>;\n Parameters?: Array<{\n ParameterKey: string;\n ParameterValue: string;\n }>;\n}\n\nexport interface CloudFormationDescribeStackOptions extends AwsCommandOptions {\n stackName: string;\n}\n\n// DynamoDB types\nexport interface DynamoDBDescribeTableOptions extends AwsCommandOptions {\n tableName: string;\n}\n\nexport interface DynamoDBScanOptions extends AwsCommandOptions {\n tableName: string;\n filterExpression?: string;\n expressionAttributeValues?: string;\n limit?: number;\n}\n\nexport interface DynamoDBQueryOptions extends AwsCommandOptions {\n tableName: string;\n keyConditionExpression: string;\n expressionAttributeValues: string;\n indexName?: string;\n filterExpression?: string;\n limit?: number;\n scanIndexForward?: boolean;\n}\n\nexport interface DynamoDBGetItemOptions extends AwsCommandOptions {\n tableName: string;\n key: string;\n}\n\n// SQS types\nexport interface SQSQueue {\n QueueUrl: string;\n}\n\nexport interface SQSListQueuesOptions extends AwsCommandOptions {\n queueNamePrefix?: string;\n}\n\nexport interface SQSGetQueueAttributesOptions extends AwsCommandOptions {\n queueUrl: string;\n}\n\nexport interface SQSReceiveMessageOptions extends AwsCommandOptions {\n queueUrl: string;\n maxNumberOfMessages?: number;\n visibilityTimeout?: number;\n}\n\nexport interface SQSPurgeQueueOptions extends AwsCommandOptions {\n queueUrl: string;\n}\n\n// AWS Profile\nexport interface AwsProfile {\n name: string;\n source: \"config\" | \"credentials\";\n region?: string;\n sso_start_url?: string;\n}\n\n// Validation types\nexport interface AwsValidationResult {\n success: boolean;\n cliAvailable: boolean;\n cliVersion?: string;\n profiles: AwsProfile[];\n}\n\n/**\n * Parse AWS CLI error messages into user-friendly descriptions\n */\nfunction parseAwsError(\n stderr: string,\n service: string,\n command: string,\n): string {\n if (stderr.includes(\"ExpiredToken\") || stderr.includes(\"Token has expired\")) {\n return \"AWS credentials have expired. Run 'aws sso login' or refresh your credentials.\";\n }\n if (\n stderr.includes(\"NoCredentialProviders\") ||\n stderr.includes(\"Unable to locate credentials\")\n ) {\n return \"No AWS credentials found. Configure credentials with 'aws configure' or 'aws sso login'.\";\n }\n if (stderr.includes(\"AccessDenied\") || stderr.includes(\"Access Denied\")) {\n return `Access denied for ${service}:${command}. Check your IAM permissions.`;\n }\n if (stderr.includes(\"ResourceNotFoundException\")) {\n return `Resource not found. Check that the specified resource exists in the correct region.`;\n }\n if (stderr.includes(\"ValidationException\")) {\n const match = stderr.match(/ValidationException[^:]*:\\s*(.+)/);\n return match\n ? `Validation error: ${match[1].trim()}`\n : \"Validation error in request parameters.\";\n }\n if (\n stderr.includes(\"ThrottlingException\") ||\n stderr.includes(\"Rate exceeded\")\n ) {\n return \"AWS API rate limit exceeded. Wait a moment and try again.\";\n }\n if (stderr.includes(\"InvalidParameterValue\")) {\n const match = stderr.match(/InvalidParameterValue[^:]*:\\s*(.+)/);\n return match\n ? `Invalid parameter: ${match[1].trim()}`\n : \"Invalid parameter value provided.\";\n }\n return stderr.trim();\n}\n\n/**\n * Parse relative time strings like 'now-1h' to Unix timestamps\n */\nfunction parseRelativeTime(timeStr: string): number {\n const now = Date.now();\n\n if (timeStr === \"now\") {\n return now;\n }\n\n // Handle relative time like 'now-15m', 'now-1h', 'now-1d'\n const relativeMatch = timeStr.match(/^now-(\\d+)([smhd])$/);\n if (relativeMatch) {\n const value = parseInt(relativeMatch[1], 10);\n const unit = relativeMatch[2];\n const multipliers: Record<string, number> = {\n s: 1000,\n m: 60 * 1000,\n h: 60 * 60 * 1000,\n d: 24 * 60 * 60 * 1000,\n };\n return now - value * multipliers[unit];\n }\n\n // Handle ISO 8601 format\n const parsed = Date.parse(timeStr);\n if (!isNaN(parsed)) {\n return parsed;\n }\n\n // Default to the current time if parsing fails\n return now;\n}\n\n/**\n * Execute an AWS CLI command and return parsed JSON output\n */\nexport async function executeAwsCommand<T>(\n service: string,\n command: string,\n args: string[],\n options: AwsCommandOptions = {},\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<T>> {\n const fullArgs = [service, command, ...args, \"--output\", \"json\"];\n\n if (options.profile) {\n fullArgs.push(\"--profile\", options.profile);\n }\n if (options.region) {\n fullArgs.push(\"--region\", options.region);\n }\n\n logger.info(`Executing: aws ${fullArgs.join(\" \")}`);\n\n return new Promise((resolve) => {\n const proc = spawn(\"aws\", fullArgs);\n let stdout = \"\";\n let stderr = \"\";\n\n proc.stdout.on(\"data\", (data) => {\n stdout += data.toString();\n });\n proc.stderr.on(\"data\", (data) => {\n stderr += data.toString();\n });\n\n proc.on(\"close\", (code) => {\n if (code !== 0) {\n logger.error(`AWS CLI error: ${stderr}`);\n resolve({\n success: false,\n error: parseAwsError(stderr, service, command),\n });\n return;\n }\n\n // Handle empty output (some commands return nothing on success)\n if (!stdout.trim()) {\n resolve({ success: true });\n return;\n }\n\n try {\n const data = JSON.parse(stdout) as T;\n resolve({ success: true, data });\n } catch {\n // Some commands return plain text\n resolve({ success: true, data: stdout.trim() as unknown as T });\n }\n });\n\n proc.on(\"error\", (error) => {\n if (error.message.includes(\"ENOENT\")) {\n resolve({\n success: false,\n error:\n \"AWS CLI not found. Install it from https://aws.amazon.com/cli/\",\n });\n } else {\n resolve({ success: false, error: error.message });\n }\n });\n });\n}\n\n/**\n * Check if AWS CLI is available and get its version\n */\nasync function checkAwsCliVersion(): Promise<{\n available: boolean;\n version?: string;\n}> {\n return new Promise((resolve) => {\n const proc = spawn(\"aws\", [\"--version\"]);\n let stdout = \"\";\n\n proc.stdout.on(\"data\", (data) => {\n stdout += data.toString();\n });\n\n proc.on(\"close\", (code) => {\n if (code === 0) {\n // Output is like \"aws-cli/2.15.0 Python/3.11.6 Darwin/23.2.0 source/arm64\"\n const match = stdout.match(/aws-cli\\/([\\d.]+)/);\n resolve({\n available: true,\n version: match ? match[1] : stdout.trim(),\n });\n } else {\n resolve({ available: false });\n }\n });\n\n proc.on(\"error\", () => {\n resolve({ available: false });\n });\n });\n}\n\n/**\n * Validate AWS setup without making API calls\n */\nexport async function validateAwsSetup(): Promise<AwsValidationResult> {\n const cliCheck = await checkAwsCliVersion();\n const profilesResult = await listAwsProfiles();\n\n return {\n cliAvailable: cliCheck.available,\n cliVersion: cliCheck.version,\n profiles: profilesResult.success ? (profilesResult.data ?? []) : [],\n success: cliCheck.available,\n };\n}\n\n/**\n * List available AWS profiles from ~/.aws/config and ~/.aws/credentials\n */\nexport async function listAwsProfiles(\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<AwsProfile[]>> {\n const profiles: AwsProfile[] = [];\n const homeDir = os.homedir();\n\n try {\n // Parse ~/.aws/config\n const configPath = path.join(homeDir, \".aws\", \"config\");\n try {\n const configContent = await fs.readFile(configPath, \"utf-8\");\n const profileRegex = /\\[profile\\s+([^\\]]+)\\]|\\[default\\]/g;\n let match;\n while ((match = profileRegex.exec(configContent)) !== null) {\n const name = match[1] || \"default\";\n profiles.push({\n name,\n source: \"config\",\n });\n }\n logger.info(`Found ${profiles.length} profiles in config`);\n } catch {\n logger.info(\"No ~/.aws/config file found\");\n }\n\n // Parse ~/.aws/credentials\n const credentialsPath = path.join(homeDir, \".aws\", \"credentials\");\n try {\n const credentialsContent = await fs.readFile(credentialsPath, \"utf-8\");\n const profileRegex = /\\[([^\\]]+)\\]/g;\n let match;\n while ((match = profileRegex.exec(credentialsContent)) !== null) {\n const name = match[1];\n // Only add if not already in the list\n if (!profiles.find((p) => p.name === name)) {\n profiles.push({\n name,\n source: \"credentials\",\n });\n }\n }\n logger.info(`Total profiles after credentials: ${profiles.length}`);\n } catch {\n logger.info(\"No ~/.aws/credentials file found\");\n }\n\n return { success: true, data: profiles };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : \"Unknown error\";\n logger.error(`Error listing profiles: ${errorMessage}`);\n return { success: false, error: errorMessage };\n }\n}\n\n// Step Functions operations\nexport async function listStepFunctionExecutions(\n options: StepFunctionsListExecutionsOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ executions: StepFunctionExecution[] }>> {\n const args = [\"--state-machine-arn\", options.stateMachineArn];\n if (options.statusFilter) {\n args.push(\"--status-filter\", options.statusFilter);\n }\n if (options.maxResults) {\n args.push(\"--max-results\", String(options.maxResults));\n }\n\n return executeAwsCommand(\n \"stepfunctions\",\n \"list-executions\",\n args,\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\nexport async function stopStepFunctionExecution(\n options: StepFunctionsStopExecutionOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ stopDate: string }>> {\n const args = [\"--execution-arn\", options.executionArn];\n if (options.cause) {\n args.push(\"--cause\", options.cause);\n }\n\n return executeAwsCommand(\n \"stepfunctions\",\n \"stop-execution\",\n args,\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\n// Lambda operations\nexport async function listLambdaFunctions(\n options: LambdaListFunctionsOptions = {},\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ Functions: LambdaFunction[] }>> {\n const args: string[] = [];\n if (options.maxResults) {\n args.push(\"--max-items\", String(options.maxResults));\n }\n\n const result = await executeAwsCommand<{ Functions: LambdaFunction[] }>(\n \"lambda\",\n \"list-functions\",\n args,\n { profile: options.profile, region: options.region },\n logger,\n );\n\n // Filter by prefix if specified\n if (result.success && result.data && options.functionNamePrefix) {\n result.data.Functions = result.data.Functions.filter((f) =>\n f.FunctionName.startsWith(options.functionNamePrefix!),\n );\n }\n\n return result;\n}\n\nexport async function getLambdaFunction(\n options: LambdaGetFunctionOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ Configuration: LambdaFunction }>> {\n return executeAwsCommand(\n \"lambda\",\n \"get-function\",\n [\"--function-name\", options.functionName],\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\n// CloudWatch Logs operations\nexport async function filterLogEvents(\n options: CloudWatchLogsFilterOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ events: LogEvent[] }>> {\n const args = [\"--log-group-name\", options.logGroupName];\n\n if (options.filterPattern) {\n args.push(\"--filter-pattern\", options.filterPattern);\n }\n if (options.startTime) {\n const startMs = parseRelativeTime(options.startTime);\n args.push(\"--start-time\", String(startMs));\n }\n if (options.endTime) {\n const endMs = parseRelativeTime(options.endTime);\n args.push(\"--end-time\", String(endMs));\n }\n if (options.limit) {\n args.push(\"--limit\", String(options.limit));\n }\n\n return executeAwsCommand(\n \"logs\",\n \"filter-log-events\",\n args,\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\n// S3 operations\nexport async function listS3Objects(\n options: S3ListObjectsOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ Contents: S3Object[] }>> {\n const args = [\"--bucket\", options.bucket];\n if (options.prefix) {\n args.push(\"--prefix\", options.prefix);\n }\n if (options.maxResults) {\n args.push(\"--max-items\", String(options.maxResults));\n }\n\n return executeAwsCommand(\n \"s3api\",\n \"list-objects-v2\",\n args,\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\n// CloudFormation operations\nexport async function describeStack(\n options: CloudFormationDescribeStackOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ Stacks: CloudFormationStack[] }>> {\n return executeAwsCommand(\n \"cloudformation\",\n \"describe-stacks\",\n [\"--stack-name\", options.stackName],\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\n// DynamoDB operations\nexport async function describeDynamoDBTable(\n options: DynamoDBDescribeTableOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ Table: Record<string, unknown> }>> {\n return executeAwsCommand(\n \"dynamodb\",\n \"describe-table\",\n [\"--table-name\", options.tableName],\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\nexport async function scanDynamoDB(\n options: DynamoDBScanOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ Items: Record<string, unknown>[] }>> {\n const args = [\"--table-name\", options.tableName];\n if (options.filterExpression) {\n args.push(\"--filter-expression\", options.filterExpression);\n }\n if (options.expressionAttributeValues) {\n args.push(\n \"--expression-attribute-values\",\n options.expressionAttributeValues,\n );\n }\n if (options.limit) {\n args.push(\"--limit\", String(options.limit));\n }\n\n return executeAwsCommand(\n \"dynamodb\",\n \"scan\",\n args,\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\nexport async function queryDynamoDB(\n options: DynamoDBQueryOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ Items: Record<string, unknown>[] }>> {\n const args = [\n \"--table-name\",\n options.tableName,\n \"--key-condition-expression\",\n options.keyConditionExpression,\n \"--expression-attribute-values\",\n options.expressionAttributeValues,\n ];\n if (options.indexName) {\n args.push(\"--index-name\", options.indexName);\n }\n if (options.filterExpression) {\n args.push(\"--filter-expression\", options.filterExpression);\n }\n if (options.limit) {\n args.push(\"--limit\", String(options.limit));\n }\n if (options.scanIndexForward === false) {\n args.push(\"--no-scan-index-forward\");\n }\n\n return executeAwsCommand(\n \"dynamodb\",\n \"query\",\n args,\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\nexport async function getDynamoDBItem(\n options: DynamoDBGetItemOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ Item: Record<string, unknown> }>> {\n return executeAwsCommand(\n \"dynamodb\",\n \"get-item\",\n [\"--table-name\", options.tableName, \"--key\", options.key],\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\n// SQS operations\nexport async function listSQSQueues(\n options: SQSListQueuesOptions = {},\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ QueueUrls: string[] }>> {\n const args: string[] = [];\n if (options.queueNamePrefix) {\n args.push(\"--queue-name-prefix\", options.queueNamePrefix);\n }\n\n return executeAwsCommand(\n \"sqs\",\n \"list-queues\",\n args,\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\nexport async function getSQSQueueAttributes(\n options: SQSGetQueueAttributesOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<{ Attributes: Record<string, string> }>> {\n return executeAwsCommand(\n \"sqs\",\n \"get-queue-attributes\",\n [\"--queue-url\", options.queueUrl, \"--attribute-names\", \"All\"],\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\nexport async function receiveSQSMessage(\n options: SQSReceiveMessageOptions,\n logger: Logger = nullLogger,\n): Promise<\n AwsCommandResult<{\n Messages: Array<{\n MessageId: string;\n ReceiptHandle: string;\n Body: string;\n Attributes?: Record<string, string>;\n }>;\n }>\n> {\n const args = [\"--queue-url\", options.queueUrl];\n if (options.maxNumberOfMessages) {\n args.push(\"--max-number-of-messages\", String(options.maxNumberOfMessages));\n }\n if (options.visibilityTimeout) {\n args.push(\"--visibility-timeout\", String(options.visibilityTimeout));\n }\n args.push(\"--attribute-names\", \"All\");\n\n return executeAwsCommand(\n \"sqs\",\n \"receive-message\",\n args,\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n\nexport async function purgeSQSQueue(\n options: SQSPurgeQueueOptions,\n logger: Logger = nullLogger,\n): Promise<AwsCommandResult<void>> {\n return executeAwsCommand(\n \"sqs\",\n \"purge-queue\",\n [\"--queue-url\", options.queueUrl],\n { profile: options.profile, region: options.region },\n logger,\n );\n}\n"],"names":[],"mappings":"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"}
@@ -1,87 +0,0 @@
1
- # AWS CLI Tools
2
-
3
- Access AWS services through the AWS CLI. Requires AWS CLI installed and configured.
4
-
5
- ## Commands
6
-
7
- | Command | Description | Required Parameters |
8
- |---------|-------------|---------------------|
9
- | `validate` | Validate AWS setup (CLI availability, profiles) | - |
10
- | `list_profiles` | List AWS profiles | - |
11
- | `lambda_list_functions` | List Lambda functions | - |
12
- | `lambda_get_function` | Get function details | `functionName` |
13
- | `stepfunctions_list_executions` | List Step Function executions | `stateMachineArn` |
14
- | `stepfunctions_stop_execution` | Stop a running execution | `executionArn` |
15
- | `logs_filter_log_events` | Search CloudWatch Logs | `logGroupName` |
16
- | `s3_list_objects` | List bucket objects | `bucket` |
17
- | `cloudformation_describe_stack` | Get stack details | `stackName` |
18
- | `dynamodb_describe_table` | Get table metadata | `tableName` |
19
- | `dynamodb_scan` | Scan table | `tableName` |
20
- | `dynamodb_query` | Query by partition key | `tableName`, `keyConditionExpression`, `expressionAttributeValues` |
21
- | `dynamodb_get_item` | Get single item | `tableName`, `key` |
22
- | `sqs_list_queues` | List queues | - |
23
- | `sqs_get_queue_attributes` | Get queue details | `queueUrl` |
24
- | `sqs_receive_message` | Peek at messages | `queueUrl` |
25
- | `sqs_purge_queue` | Delete all messages | `queueUrl` |
26
-
27
- ## Parameters
28
-
29
- All parameters are passed at the top level (flat structure):
30
-
31
- | Parameter | Type | Description |
32
- |-----------|------|-------------|
33
- | `command` | string | Command to execute (omit for help) |
34
- | `profile` | string | AWS profile name |
35
- | `region` | string | AWS region (e.g., us-east-1) |
36
- | `functionName` | string | Lambda function name |
37
- | `functionNamePrefix` | string | Lambda function name prefix filter |
38
- | `stateMachineArn` | string | Step Functions state machine ARN |
39
- | `executionArn` | string | Step Functions execution ARN |
40
- | `statusFilter` | string | Step Functions status: RUNNING, SUCCEEDED, FAILED, TIMED_OUT, ABORTED, PENDING_REDRIVE |
41
- | `cause` | string | Cause for stopping Step Functions execution |
42
- | `logGroupName` | string | CloudWatch Logs group name |
43
- | `filterPattern` | string | CloudWatch Logs filter pattern |
44
- | `startTime` | string | Start time (e.g., now-15m) |
45
- | `endTime` | string | End time (e.g., now) |
46
- | `bucket` | string | S3 bucket name |
47
- | `prefix` | string | S3 object prefix filter |
48
- | `stackName` | string | CloudFormation stack name |
49
- | `tableName` | string | DynamoDB table name |
50
- | `keyConditionExpression` | string | DynamoDB key condition expression |
51
- | `expressionAttributeValues` | string | DynamoDB expression attribute values (JSON string) |
52
- | `filterExpression` | string | DynamoDB filter expression |
53
- | `indexName` | string | DynamoDB index name |
54
- | `key` | string | DynamoDB item key (JSON string) |
55
- | `scanIndexForward` | boolean | DynamoDB scan direction (true=ascending) |
56
- | `queueUrl` | string | SQS queue URL |
57
- | `queueNamePrefix` | string | SQS queue name prefix filter |
58
- | `maxNumberOfMessages` | number | SQS max messages to receive |
59
- | `visibilityTimeout` | number | SQS message visibility timeout in seconds |
60
- | `limit` | number | Maximum number of results |
61
- | `maxResults` | number | Maximum number of results |
62
-
63
- ## Examples
64
-
65
- ```
66
- # List AWS profiles
67
- aws({ command: "list_profiles" })
68
-
69
- # List Lambda functions in a region
70
- aws({ command: "lambda_list_functions", region: "us-east-1", functionNamePrefix: "my-app" })
71
-
72
- # Query DynamoDB
73
- aws({
74
- command: "dynamodb_query",
75
- tableName: "my-table",
76
- keyConditionExpression: "pk = :pk",
77
- expressionAttributeValues: "{\":pk\":{\"S\":\"user#123\"}}"
78
- })
79
-
80
- # Filter CloudWatch Logs
81
- aws({
82
- command: "logs_filter_log_events",
83
- logGroupName: "/aws/lambda/my-function",
84
- filterPattern: "ERROR",
85
- startTime: "now-1h"
86
- })
87
- ```
@@ -1,68 +0,0 @@
1
- export declare const awsService: import("@jaypie/fabric").Service<Record<string, unknown>, string | import("./aws.js").AwsValidationResult | import("./aws.js").AwsProfile[] | {
2
- executions: import("./aws.js").StepFunctionExecution[];
3
- } | {
4
- stopDate: string;
5
- } | {
6
- Functions: import("./aws.js").LambdaFunction[];
7
- } | {
8
- Configuration: import("./aws.js").LambdaFunction;
9
- } | {
10
- events: import("./aws.js").LogEvent[];
11
- } | {
12
- Contents: import("./aws.js").S3Object[];
13
- } | {
14
- Stacks: import("./aws.js").CloudFormationStack[];
15
- } | {
16
- Table: Record<string, unknown>;
17
- } | {
18
- Items: Record<string, unknown>[];
19
- } | {
20
- Item: Record<string, unknown>;
21
- } | {
22
- QueueUrls: string[];
23
- } | {
24
- Attributes: Record<string, string>;
25
- } | {
26
- Messages: Array<{
27
- MessageId: string;
28
- ReceiptHandle: string;
29
- Body: string;
30
- Attributes?: Record<string, string>;
31
- }>;
32
- } | {
33
- success: boolean;
34
- } | undefined, string | import("./aws.js").AwsValidationResult | import("./aws.js").AwsProfile[] | {
35
- executions: import("./aws.js").StepFunctionExecution[];
36
- } | {
37
- stopDate: string;
38
- } | {
39
- Functions: import("./aws.js").LambdaFunction[];
40
- } | {
41
- Configuration: import("./aws.js").LambdaFunction;
42
- } | {
43
- events: import("./aws.js").LogEvent[];
44
- } | {
45
- Contents: import("./aws.js").S3Object[];
46
- } | {
47
- Stacks: import("./aws.js").CloudFormationStack[];
48
- } | {
49
- Table: Record<string, unknown>;
50
- } | {
51
- Items: Record<string, unknown>[];
52
- } | {
53
- Item: Record<string, unknown>;
54
- } | {
55
- QueueUrls: string[];
56
- } | {
57
- Attributes: Record<string, string>;
58
- } | {
59
- Messages: Array<{
60
- MessageId: string;
61
- ReceiptHandle: string;
62
- Body: string;
63
- Attributes?: Record<string, string>;
64
- }>;
65
- } | {
66
- success: boolean;
67
- } | undefined>;
68
- export * from "./aws.js";