@jaypie/mcp 0.6.3 → 0.6.5
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/dist/suites/docs/index.js +1 -1
- package/package.json +1 -1
- package/release-notes/constructs/1.2.23.md +43 -0
- package/release-notes/mcp/0.6.5.md +12 -0
- package/skills/dynamodb.md +16 -0
- package/skills/llm.md +21 -0
|
@@ -8,7 +8,7 @@ import { gt } from 'semver';
|
|
|
8
8
|
/**
|
|
9
9
|
* Docs Suite - Documentation services (skill, version, release_notes)
|
|
10
10
|
*/
|
|
11
|
-
const BUILD_VERSION_STRING = "@jaypie/mcp@0.6.
|
|
11
|
+
const BUILD_VERSION_STRING = "@jaypie/mcp@0.6.5#d73a8800"
|
|
12
12
|
;
|
|
13
13
|
const __filename$1 = fileURLToPath(import.meta.url);
|
|
14
14
|
const __dirname$1 = path.dirname(__filename$1);
|
package/package.json
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 1.2.23
|
|
3
|
+
date: 2025-01-26
|
|
4
|
+
summary: Fix shared secrets not injecting env vars across constructs (Issue #158)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# @jaypie/constructs 1.2.23
|
|
8
|
+
|
|
9
|
+
## Bug Fix
|
|
10
|
+
|
|
11
|
+
### Shared Secrets Between Constructs (Issue #158)
|
|
12
|
+
|
|
13
|
+
Fixed an issue where secrets declared in multiple constructs (e.g., `JaypieQueuedLambda` and `JaypieNextJs`) would not properly inject `SECRET_*` environment variables or grant IAM permissions to the second construct.
|
|
14
|
+
|
|
15
|
+
**Root Cause**: `JaypieLambda` and `JaypieNextJs` were calling `resolveSecrets(scope, ...)` with their parent construct as the scope. This caused secrets to be cached per-construct rather than per-stack, so constructs couldn't share secrets.
|
|
16
|
+
|
|
17
|
+
**Fix**: Changed both `JaypieLambda` and `JaypieNextJs` to use `Stack.of(this)` as the scope for `resolveSecrets`. This ensures:
|
|
18
|
+
- Secrets are shared at the stack level across all constructs
|
|
19
|
+
- Each construct sets its own `SECRET_*` environment variables
|
|
20
|
+
- Each construct grants IAM permissions to its Lambda function
|
|
21
|
+
|
|
22
|
+
**Before** (broken):
|
|
23
|
+
```typescript
|
|
24
|
+
// JaypieQueuedLambda created secrets under its own namespace
|
|
25
|
+
// JaypieNextJs couldn't find or use those secrets
|
|
26
|
+
const jobProcessor = new JaypieQueuedLambda(this, "JobProcessor", {
|
|
27
|
+
secrets: ["ANTHROPIC_API_KEY"], // Created JobProcessorANTHROPICAPIKEY-xxx
|
|
28
|
+
});
|
|
29
|
+
const nextjsApp = new JaypieNextJs(this, "NextJsApp", {
|
|
30
|
+
secrets: ["ANTHROPIC_API_KEY"], // Missing env var and permissions!
|
|
31
|
+
});
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**After** (fixed):
|
|
35
|
+
```typescript
|
|
36
|
+
// Both constructs share secrets at stack level
|
|
37
|
+
const jobProcessor = new JaypieQueuedLambda(this, "JobProcessor", {
|
|
38
|
+
secrets: ["ANTHROPIC_API_KEY"], // Creates shared secret
|
|
39
|
+
});
|
|
40
|
+
const nextjsApp = new JaypieNextJs(this, "NextJsApp", {
|
|
41
|
+
secrets: ["ANTHROPIC_API_KEY"], // Reuses same secret, gets env var + permissions
|
|
42
|
+
});
|
|
43
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.6.5
|
|
3
|
+
date: 2026-01-26
|
|
4
|
+
summary: Added migration guide for class to category refactor in DynamoDB skill
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# @jaypie/mcp 0.6.5
|
|
8
|
+
|
|
9
|
+
## Changes
|
|
10
|
+
|
|
11
|
+
- Added migration section to `dynamodb` skill documenting the `class` → `category` field rename in @jaypie/dynamodb 0.4.0+
|
|
12
|
+
- Documents table recreation and migration script options for existing tables
|
package/skills/dynamodb.md
CHANGED
|
@@ -147,3 +147,19 @@ describe("OrderService", () => {
|
|
|
147
147
|
});
|
|
148
148
|
```
|
|
149
149
|
|
|
150
|
+
## Migration: class to category (v0.4.0)
|
|
151
|
+
|
|
152
|
+
Version 0.4.0 renamed `class` → `category` and `indexClass` → `indexCategory`.
|
|
153
|
+
|
|
154
|
+
**If your table was created with an older version:**
|
|
155
|
+
|
|
156
|
+
1. **Local dev**: Delete and recreate the table using MCP `createTable`
|
|
157
|
+
2. **Production**: See `packages/dynamodb/CLAUDE.md` for migration script
|
|
158
|
+
|
|
159
|
+
| Old | New |
|
|
160
|
+
|-----|-----|
|
|
161
|
+
| `class` | `category` |
|
|
162
|
+
| `indexClass` | `indexCategory` |
|
|
163
|
+
| `INDEX_CLASS` | `INDEX_CATEGORY` |
|
|
164
|
+
| `queryByClass()` | `queryByCategory()` |
|
|
165
|
+
|
package/skills/llm.md
CHANGED
|
@@ -142,6 +142,27 @@ const greetTool = fabricLlmTool(greetService);
|
|
|
142
142
|
const toolkit = new Toolkit([greetTool]);
|
|
143
143
|
```
|
|
144
144
|
|
|
145
|
+
### Explain Mode
|
|
146
|
+
|
|
147
|
+
Explain mode adds transparency to tool calling by requiring the LLM to state its reasoning when invoking tools.
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
// Enable via Toolkit constructor
|
|
151
|
+
const toolkit = new Toolkit([myTool], { explain: true });
|
|
152
|
+
|
|
153
|
+
// Or via operate options
|
|
154
|
+
const response = await Llm.operate("What's the weather?", {
|
|
155
|
+
model: "gpt-5.1",
|
|
156
|
+
tools: myTools,
|
|
157
|
+
explain: true,
|
|
158
|
+
});
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
When enabled:
|
|
162
|
+
- Each tool receives an `__Explanation` parameter requiring the model to state why it's calling the tool
|
|
163
|
+
- The explanation is stripped before the tool executes (tools receive clean arguments)
|
|
164
|
+
- Useful for debugging and understanding LLM decision-making
|
|
165
|
+
|
|
145
166
|
## Structured Output
|
|
146
167
|
|
|
147
168
|
### Natural Schema
|