@jaypie/mcp 0.8.11 → 0.8.13

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.
@@ -9,7 +9,7 @@ import { gt } from 'semver';
9
9
  /**
10
10
  * Docs Suite - Documentation services (skill, version, release_notes)
11
11
  */
12
- const BUILD_VERSION_STRING = "@jaypie/mcp@0.8.11#aeda2bbb"
12
+ const BUILD_VERSION_STRING = "@jaypie/mcp@0.8.13#1ce297f9"
13
13
  ;
14
14
  const __filename$1 = fileURLToPath(import.meta.url);
15
15
  const __dirname$1 = path.dirname(__filename$1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaypie/mcp",
3
- "version": "0.8.11",
3
+ "version": "0.8.13",
4
4
  "description": "Jaypie MCP",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,11 @@
1
+ ---
2
+ version: 1.2.22
3
+ date: 2026-04-01
4
+ summary: Raise default max turns to 24, add consecutive tool error limit of 6
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - Raised `MAX_TURNS_DEFAULT_LIMIT` from 12 to 24 to give agents more room for tool-heavy workflows
10
+ - Added `MAX_CONSECUTIVE_TOOL_ERRORS = 6` — the operate and stream loops now stop when tools fail 6 times in a row, preventing agents from exhausting turns on broken toolkits
11
+ - Consecutive error counter resets on any successful tool call
@@ -0,0 +1,9 @@
1
+ ---
2
+ version: 1.2.23
3
+ date: 2026-04-02
4
+ summary: Deduplicate ALL.COMBINED model list
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - Fix: `ALL.COMBINED` now deduplicates models using `Set` spread, preventing duplicate entries when provider tiers share the same model ID (e.g., Anthropic DEFAULT = SMALL)
package/skills/agents.md CHANGED
@@ -34,7 +34,7 @@ Complete stack styles, techniques, and traditions.
34
34
 
35
35
  Contents: index, releasenotes
36
36
  Development: apikey, documentation, errors, llm, logs, mocks, monorepo, style, subpackages, tests, tools
37
- Infrastructure: aws, cdk, cicd, datadog, dns, dynamodb, express, lambda, migrations, secrets, streaming, variables, websockets
37
+ Infrastructure: aws, cdk, cicd, datadog, dns, dynamodb, express, lambda, migrations, secrets, sqs, streaming, variables, websockets
38
38
  Patterns: api, fabric, handlers, models, services, vocabulary
39
39
  Recipes: recipe-api-server
40
40
  Meta: issues, jaypie, mcp, skills
package/skills/skills.md CHANGED
@@ -17,7 +17,7 @@ Look up skills by alias: `mcp__jaypie__skill(alias)`
17
17
  |----------|--------|
18
18
  | contents | index, releasenotes |
19
19
  | development | apikey, documentation, errors, llm, logs, mocks, monorepo, style, subpackages, tests, tools |
20
- | infrastructure | aws, cdk, cicd, datadog, dns, dynamodb, express, lambda, migrations, secrets, streaming, variables, websockets |
20
+ | infrastructure | aws, cdk, cicd, datadog, dns, dynamodb, express, lambda, migrations, secrets, sqs, streaming, variables, websockets |
21
21
  | patterns | api, fabric, handlers, models, services, vocabulary |
22
22
  | recipes | recipe-api-server |
23
23
  | meta | issues, jaypie, mcp, skills |
package/skills/sqs.md ADDED
@@ -0,0 +1,133 @@
1
+ ---
2
+ description: SQS messaging patterns, queue constructs, and event parsing
3
+ related: aws, cdk, lambda, variables
4
+ ---
5
+
6
+ # SQS Messaging
7
+
8
+ Jaypie provides SQS utilities through `@jaypie/aws` and CDK constructs through `@jaypie/constructs`.
9
+
10
+ ## Sending Messages
11
+
12
+ ```typescript
13
+ import { sendMessage, sendBatchMessages } from "@jaypie/aws";
14
+
15
+ // Simple usage with default queue (CDK_ENV_QUEUE_URL)
16
+ await sendMessage({ action: "process", documentId: "doc-123" });
17
+
18
+ // With explicit queue URL and options
19
+ await sendMessage(
20
+ { action: "process" },
21
+ {
22
+ delaySeconds: 30,
23
+ messageAttributes: { Priority: { DataType: "String", StringValue: "high" } },
24
+ queueUrl: "https://sqs...",
25
+ }
26
+ );
27
+
28
+ // Batch send (automatically batched in groups of 10)
29
+ const messages = items.map((item) => ({ action: "process", id: item.id }));
30
+ await sendBatchMessages({ messages });
31
+ ```
32
+
33
+ ## Receiving Messages
34
+
35
+ Parse incoming SQS/SNS events in Lambda handlers:
36
+
37
+ ```typescript
38
+ import { getMessages, getSingletonMessage } from "@jaypie/aws";
39
+
40
+ // Get all messages from event
41
+ const messages = getMessages(event); // Returns array of parsed bodies
42
+
43
+ // Get exactly one message or throw BadGatewayError
44
+ const message = getSingletonMessage(event);
45
+ ```
46
+
47
+ ## CDK: JaypieQueue
48
+
49
+ SQS queue with DLQ and Lambda trigger:
50
+
51
+ ```typescript
52
+ import { JaypieQueue } from "@jaypie/constructs";
53
+
54
+ const queue = new JaypieQueue(this, "ProcessQueue", {
55
+ visibilityTimeout: Duration.seconds(60),
56
+ retentionPeriod: Duration.days(7),
57
+ });
58
+
59
+ // Connect to Lambda
60
+ queue.addEventSource(handler);
61
+ ```
62
+
63
+ ### Wiring Queue URL to Lambda
64
+
65
+ ```typescript
66
+ import { JaypieLambda, JaypieQueue } from "@jaypie/constructs";
67
+
68
+ const queue = new JaypieQueue(this, "ProcessQueue");
69
+
70
+ const handler = new JaypieLambda(this, "Handler", {
71
+ entry: "src/handler.ts",
72
+ environment: {
73
+ CDK_ENV_QUEUE_URL: queue.queueUrl,
74
+ },
75
+ });
76
+
77
+ queue.grantSendMessages(handler);
78
+ ```
79
+
80
+ ### Resource Naming
81
+
82
+ Queue names are account-global. Always include `PROJECT_ENV` and `PROJECT_NONCE` to avoid collisions:
83
+
84
+ ```typescript
85
+ // Bad
86
+ queueName: `${prefix}-process`
87
+
88
+ // Good
89
+ queueName: `${prefix}-process-${PROJECT_ENV}-${PROJECT_NONCE}`
90
+ ```
91
+
92
+ ## Environment Variables
93
+
94
+ | Variable | Description |
95
+ |----------|-------------|
96
+ | `CDK_ENV_QUEUE_URL` | Default SQS queue URL |
97
+ | `PROJECT_KEY` | Used for FIFO queue message group ID |
98
+
99
+ ## Testing
100
+
101
+ ```typescript
102
+ import { sendMessage } from "@jaypie/testkit/mock";
103
+ import { vi } from "vitest";
104
+
105
+ vi.mock("@jaypie/aws");
106
+
107
+ it("sends message to queue", async () => {
108
+ vi.mocked(sendMessage).mockResolvedValue({ MessageId: "123" });
109
+
110
+ await handler({ documentId: "doc-123" });
111
+
112
+ expect(sendMessage).toHaveBeenCalledWith(
113
+ expect.objectContaining({ documentId: "doc-123" })
114
+ );
115
+ });
116
+ ```
117
+
118
+ ## Debugging
119
+
120
+ ```bash
121
+ # Check queue depth
122
+ aws_sqs_get_queue_attributes --queueUrl "https://..."
123
+
124
+ # Peek at messages
125
+ aws_sqs_receive_message --queueUrl "https://..." --maxNumberOfMessages 5
126
+ ```
127
+
128
+ ## See Also
129
+
130
+ - **`skill("aws")`** - Full AWS integration reference
131
+ - **`skill("cdk")`** - CDK constructs and deployment patterns
132
+ - **`skill("lambda")`** - Lambda handler wrappers and lifecycle
133
+ - **`skill("variables")`** - Environment variables reference