@jaypie/mcp 0.8.91 → 0.8.93
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/express/1.2.28.md +12 -0
- package/release-notes/jaypie/1.2.62.md +14 -0
- package/release-notes/llm/1.3.8.md +28 -0
- package/release-notes/logger/1.2.20.md +11 -0
- package/release-notes/mcp/0.8.92.md +13 -0
- package/release-notes/mcp/0.8.93.md +11 -0
- package/release-notes/testkit/1.2.52.md +11 -0
- package/skills/express.md +18 -0
- package/skills/llm.md +31 -5
|
@@ -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.
|
|
12
|
+
const BUILD_VERSION_STRING = "@jaypie/mcp@0.8.93#ff14510f"
|
|
13
13
|
;
|
|
14
14
|
const __filename$1 = fileURLToPath(import.meta.url);
|
|
15
15
|
const __dirname$1 = path.dirname(__filename$1);
|
package/package.json
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 1.2.28
|
|
3
|
+
date: 2026-07-04
|
|
4
|
+
summary: Include route parameters in the automatic session report
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# @jaypie/express 1.2.28
|
|
8
|
+
|
|
9
|
+
## Changes
|
|
10
|
+
|
|
11
|
+
- `expressHandler` and `expressStreamHandler` now include a `parameters` field (mirroring `req.params`) in the automatic `log.report()` call when the matched route defines params, e.g. `path: "/workflows/:id/messages"` now also reports `parameters: { id: "..." }`.
|
|
12
|
+
- `parameters` is omitted entirely when the route has no params.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 1.2.62
|
|
3
|
+
date: 2026-07-04
|
|
4
|
+
summary: Pick up @jaypie/express 1.2.28 (report parameters) and @jaypie/logger 1.2.20 (exported JaypieLogger)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Changes
|
|
8
|
+
|
|
9
|
+
- `@jaypie/express` dependency raised to `^1.2.28` — `expressHandler` and
|
|
10
|
+
`expressStreamHandler` now include a `parameters` field (mirroring
|
|
11
|
+
`req.params`) in the automatic session report when the matched route
|
|
12
|
+
defines params
|
|
13
|
+
- `@jaypie/logger` dependency raised to `^1.2.20` — `JaypieLogger` is now a
|
|
14
|
+
named export, and `report()`/`setup()`/`teardown()` gained TSDoc comments
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 1.3.8
|
|
3
|
+
date: 2026-07-04
|
|
4
|
+
summary: Surface resolved LlmTool.message in tool hooks and the tool_call progress event; add Toolkit.resolveMessage
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Changes
|
|
8
|
+
|
|
9
|
+
### Tool Messages
|
|
10
|
+
|
|
11
|
+
- `beforeEachTool`, `afterEachTool`, and `onToolError` hooks receive
|
|
12
|
+
`message` — the tool's resolved `LlmTool.message` (static string or
|
|
13
|
+
function of the parsed args), `undefined` when the tool defines none.
|
|
14
|
+
Applies to both `operate()` and `stream()`
|
|
15
|
+
- The `tool_call` progress event (`onProgress`) carries `tool.message`
|
|
16
|
+
- New public `Toolkit.resolveMessage({ name, arguments })` — resolves a
|
|
17
|
+
tool's message without calling the tool; returns `undefined` when the
|
|
18
|
+
tool is missing or defines no message; never throws (resolution errors
|
|
19
|
+
log at warn)
|
|
20
|
+
- `Toolkit.call({ name, arguments, message })` accepts an optional
|
|
21
|
+
pre-resolved message so the loops resolve each tool's message exactly
|
|
22
|
+
once per call (function messages are not invoked twice)
|
|
23
|
+
|
|
24
|
+
## Migration
|
|
25
|
+
|
|
26
|
+
No changes required. The Toolkit `log` option remains supported and
|
|
27
|
+
continues to receive the resolved message (or the default
|
|
28
|
+
`name:{args}` line when no message is defined).
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 1.2.20
|
|
3
|
+
date: 2026-07-04
|
|
4
|
+
summary: Export JaypieLogger class and document setup/report/teardown session management
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Changes
|
|
8
|
+
|
|
9
|
+
- Exported `JaypieLogger` as a named export from `@jaypie/logger` so its class members are visible to API Extractor and appear in generated API docs
|
|
10
|
+
- Added TSDoc comments to `report()`, `setup()`, and `teardown()`
|
|
11
|
+
- Documented the `log.setup()` / `log.report()` / `log.teardown()` session management pattern on jaypie.net (previously only covered in the internal `logs` skill)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.8.92
|
|
3
|
+
date: 2026-07-04
|
|
4
|
+
summary: Document tool messages in the llm skill — hooks message field, tool_call event message, Toolkit.resolveMessage
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Changes
|
|
8
|
+
|
|
9
|
+
- `skill("llm")` documents Tool Messages: the `LlmTool.message` field, the
|
|
10
|
+
`message` field on `beforeEachTool`/`afterEachTool`/`onToolError` hook
|
|
11
|
+
contexts, `tool.message` on the `tool_call` progress event, and
|
|
12
|
+
`Toolkit.resolveMessage()`
|
|
13
|
+
- Release notes for `@jaypie/llm` 1.3.8
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.8.93
|
|
3
|
+
date: 2026-07-04
|
|
4
|
+
summary: Document expressHandler/expressStreamHandler automatic parameters field in session report
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Changes
|
|
8
|
+
|
|
9
|
+
- `skill("express")` documents the automatic `log.report()` session report,
|
|
10
|
+
including the new `parameters` field (mirrors `req.params`)
|
|
11
|
+
- Release notes for `@jaypie/express` 1.2.28
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 1.2.52
|
|
3
|
+
date: 2026-07-04
|
|
4
|
+
summary: Re-export JaypieLogger from @jaypie/testkit/mock to match @jaypie/logger 1.2.20
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Changes
|
|
8
|
+
|
|
9
|
+
- `@jaypie/testkit/mock` re-exports `JaypieLogger` alongside the existing
|
|
10
|
+
`Logger`, `FORMAT`, `LEVEL`, `redactAuth`, `sanitizeAuth` mocks, matching
|
|
11
|
+
`@jaypie/logger@1.2.20`'s new named export
|
package/skills/express.md
CHANGED
|
@@ -162,6 +162,24 @@ The Lambda adapter provides Express-compatible request properties:
|
|
|
162
162
|
| `req._lambdaContext` | Original Lambda context |
|
|
163
163
|
| `req._lambdaEvent` | Original Lambda event |
|
|
164
164
|
|
|
165
|
+
## Session Report
|
|
166
|
+
|
|
167
|
+
`expressHandler` and `expressStreamHandler` automatically call `log.report()` with request metadata before the session's `log.teardown()` (see `skill("logs")`):
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
{
|
|
171
|
+
method: "GET",
|
|
172
|
+
path: "/workflows/:id/messages", // UUID segments normalized to :id
|
|
173
|
+
query: "limit=10",
|
|
174
|
+
contentType: "",
|
|
175
|
+
contentLength: 0,
|
|
176
|
+
status: "200",
|
|
177
|
+
parameters: { id: "123e4567-e89b-12d3-a456-426614174000" }, // req.params, only when non-empty
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
`parameters` mirrors Express's `req.params` so the original route parameter values survive path normalization for aggregation.
|
|
182
|
+
|
|
165
183
|
## CDK Integration
|
|
166
184
|
|
|
167
185
|
Deploy with `@jaypie/constructs`:
|
package/skills/llm.md
CHANGED
|
@@ -166,6 +166,30 @@ When enabled:
|
|
|
166
166
|
- The explanation is stripped before the tool executes (tools receive clean arguments)
|
|
167
167
|
- Useful for debugging and understanding LLM decision-making
|
|
168
168
|
|
|
169
|
+
### Tool Messages
|
|
170
|
+
|
|
171
|
+
Tools may define a `message` — a human-readable status line for the call, either a static string or a function of the parsed arguments:
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
const toolkit = new Toolkit([
|
|
175
|
+
{
|
|
176
|
+
name: "get_weather",
|
|
177
|
+
description: "Get current weather for a city",
|
|
178
|
+
type: "function",
|
|
179
|
+
parameters: { type: "object", properties: { city: { type: "string" } } },
|
|
180
|
+
call: async ({ city }) => ({ temp: 72 }),
|
|
181
|
+
message: ({ city }) => `Checking weather in ${city}`,
|
|
182
|
+
},
|
|
183
|
+
]);
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
The resolved message surfaces in three places during `operate()`/`stream()`:
|
|
187
|
+
- The Toolkit's `log` option: `new Toolkit(tools, { log: (message, { name, args }) => ... })`
|
|
188
|
+
- The `beforeEachTool`, `afterEachTool`, and `onToolError` hooks as `message`
|
|
189
|
+
- The `tool_call` progress event as `tool.message` (`operate()` only)
|
|
190
|
+
|
|
191
|
+
Resolve one directly with `toolkit.resolveMessage({ name, arguments })` — returns the resolved string, or `undefined` when the tool is missing or defines no message; it never throws.
|
|
192
|
+
|
|
169
193
|
## Structured Output
|
|
170
194
|
|
|
171
195
|
### Natural Schema
|
|
@@ -303,19 +327,21 @@ const response = await Llm.operate(input, {
|
|
|
303
327
|
afterEachModelResponse: ({ content, usage }) => {
|
|
304
328
|
console.log(`Tokens: ${usage.total}`);
|
|
305
329
|
},
|
|
306
|
-
beforeEachTool: ({ toolName, args }) => {
|
|
307
|
-
console.log(`Calling ${toolName} with
|
|
330
|
+
beforeEachTool: ({ toolName, args, message }) => {
|
|
331
|
+
console.log(message ?? `Calling ${toolName} with ${args}`);
|
|
308
332
|
},
|
|
309
|
-
afterEachTool: ({ result, toolName }) => {
|
|
333
|
+
afterEachTool: ({ result, toolName, message }) => {
|
|
310
334
|
console.log(`${toolName} returned:`, result);
|
|
311
335
|
},
|
|
312
|
-
onToolError: ({ error, toolName }) => {
|
|
336
|
+
onToolError: ({ error, toolName, message }) => {
|
|
313
337
|
console.error(`${toolName} failed:`, error);
|
|
314
338
|
},
|
|
315
339
|
},
|
|
316
340
|
});
|
|
317
341
|
```
|
|
318
342
|
|
|
343
|
+
The tool hooks receive `message` — the tool's resolved `LlmTool.message`, when the tool defines one (see Tool Messages).
|
|
344
|
+
|
|
319
345
|
## Progress Events
|
|
320
346
|
|
|
321
347
|
For progress reporting (UI updates, websockets, queue notifications), prefer `onProgress` over wiring individual hooks. It receives lightweight, serializable events as the loop runs:
|
|
@@ -341,7 +367,7 @@ Fields carried by each event (`turn` is 1-indexed):
|
|
|
341
367
|
| `start` | `model`, `provider`, `maxTurns` |
|
|
342
368
|
| `model_request` | `turn`, `model` |
|
|
343
369
|
| `model_response` | `turn`, `content` (text, if any), `toolCalls` (`[{ name, arguments }]`, if any), `usage` (this turn) |
|
|
344
|
-
| `tool_call` | `turn`, `tool: { name, arguments }` — fires before the tool runs; `arguments` is the JSON string |
|
|
370
|
+
| `tool_call` | `turn`, `tool: { name, arguments, message }` — fires before the tool runs; `arguments` is the JSON string; `message` is the resolved `LlmTool.message`, when the tool defines one |
|
|
345
371
|
| `tool_result` | `turn`, `tool: { name }` — the result value is deliberately omitted (it can be arbitrarily large); use the `afterEachTool` hook to receive it |
|
|
346
372
|
| `tool_error` | `turn`, `tool: { name }`, `error` (message string) |
|
|
347
373
|
| `retry` | `turn`, `error` (message string) |
|