@jaypie/mcp 0.8.87 → 0.8.88
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/jaypie/1.2.59.md +13 -0
- package/release-notes/llm/1.3.6.md +31 -0
- package/release-notes/mcp/0.8.88.md +20 -0
- package/skills/llm.md +39 -0
- package/skills/services.md +14 -0
- package/skills/vocabulary.md +11 -0
|
@@ -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.88#f5108b78"
|
|
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,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 1.2.59
|
|
3
|
+
date: 2026-07-02
|
|
4
|
+
summary: Bump optional @jaypie/llm peer to ^1.3.6
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Dependencies
|
|
8
|
+
|
|
9
|
+
- Bump the optional `@jaypie/llm` peer dependency floor to `^1.3.6` — default
|
|
10
|
+
`max_tokens` now resolves to the model's maximum output (capped at 16,384
|
|
11
|
+
for non-streaming requests) instead of Anthropic's hardcoded 4,096 or
|
|
12
|
+
Google's 8,192 provider default, so long generations no longer silently
|
|
13
|
+
truncate (issue #402).
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 1.3.6
|
|
3
|
+
date: 2026-07-02
|
|
4
|
+
summary: Resolve default max_tokens to model max output instead of hardcoded 4096 (Anthropic) / provider default (Google)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Changes
|
|
8
|
+
|
|
9
|
+
- Default output-token limits now resolve from the model's documented maximum
|
|
10
|
+
output instead of Anthropic's hardcoded 4,096 or Google's low 8,192 provider
|
|
11
|
+
default, which silently truncated long generations (issue #402):
|
|
12
|
+
- **Non-streaming** (`operate()`, `send()`): capped at 16,384 tokens —
|
|
13
|
+
larger non-streaming responses risk HTTP timeouts
|
|
14
|
+
- **Streaming** (`stream()`): the model maximum output — 128,000 for current
|
|
15
|
+
Claude models (64,000 for Haiku 4.5; lower legacy caps respected), 65,536
|
|
16
|
+
for Gemini 2.5/3.x
|
|
17
|
+
- New internal utility `resolveMaxOutputTokens(model, { stream })` with a
|
|
18
|
+
maintained per-model output-cap table (`src/util/maxOutputTokens.ts`)
|
|
19
|
+
- `PROVIDER.ANTHROPIC.MAX_TOKENS.DEFAULT` raised from 4,096 to 16,384
|
|
20
|
+
- Google requests now set `maxOutputTokens` explicitly; Anthropic requests
|
|
21
|
+
resolve `max_tokens` per model and transport
|
|
22
|
+
- OpenAI and xAI remain unset (their defaults do not truncate early);
|
|
23
|
+
OpenRouter remains unset (limit varies by routed model)
|
|
24
|
+
- Caller overrides via `providerOptions` (`max_tokens` for Anthropic,
|
|
25
|
+
`maxOutputTokens` for Google) continue to take precedence
|
|
26
|
+
|
|
27
|
+
## Migration
|
|
28
|
+
|
|
29
|
+
No changes required. Callers who previously worked around truncation with
|
|
30
|
+
`providerOptions: { max_tokens: ... }` can remove the override unless they
|
|
31
|
+
want a limit other than the resolved default.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.8.88
|
|
3
|
+
date: 2026-07-02
|
|
4
|
+
summary: Document the fabric context parameter; reserve plan/case/scenario vocabulary
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Changes
|
|
8
|
+
|
|
9
|
+
- Add a "Parameters vs Context" section to the `services` skill explaining
|
|
10
|
+
Fabric's `ServiceFunction` second argument (`context?: ServiceContext`) —
|
|
11
|
+
error/fatal callbacks, progress messaging, and `fabricHttp` auth/request
|
|
12
|
+
metadata — distinct from validated domain `input`/`parameters`. Previously
|
|
13
|
+
only `fabric`, `vocabulary`, and `packages/fabric/CLAUDE.md` documented this;
|
|
14
|
+
`services` had no mention of it.
|
|
15
|
+
- Reserve `plan`, `case`, and `scenario` as Fabric Models in the `vocabulary`
|
|
16
|
+
skill, generalizing across agentic applications (events open cases; cases
|
|
17
|
+
fall into scenarios; scenarios prescribe plans; jobs run plans against
|
|
18
|
+
cases). Vocabulary reservation only — no `FabricPlan`/`FabricCase`/
|
|
19
|
+
`FabricScenario` interfaces yet. Also add `kind => category, tags` to
|
|
20
|
+
discouraged words, same rationale as `type`. (#404)
|
package/skills/llm.md
CHANGED
|
@@ -496,6 +496,7 @@ interface LlmOperateOptions {
|
|
|
496
496
|
hooks?: LlmHooks; // Lifecycle callbacks
|
|
497
497
|
instructions?: string; // Additional instructions
|
|
498
498
|
model?: string; // Model override
|
|
499
|
+
providerOptions?: JsonObject; // Provider-specific request fields (passthrough)
|
|
499
500
|
system?: string; // System prompt
|
|
500
501
|
temperature?: number; // Sampling temperature (0-2)
|
|
501
502
|
tools?: LlmTool[] | Toolkit; // Available tools
|
|
@@ -510,6 +511,44 @@ interface LlmFallbackConfig {
|
|
|
510
511
|
}
|
|
511
512
|
```
|
|
512
513
|
|
|
514
|
+
## Provider Options and Output Limits
|
|
515
|
+
|
|
516
|
+
`providerOptions` passes provider-specific request fields straight through to
|
|
517
|
+
the underlying API: Anthropic merges them into the Messages request body;
|
|
518
|
+
Google merges them into the generation config.
|
|
519
|
+
|
|
520
|
+
### Default Output Token Limits
|
|
521
|
+
|
|
522
|
+
Anthropic and Google requests resolve a default output-token limit from the
|
|
523
|
+
model's documented maximum output, so long generations do not silently
|
|
524
|
+
truncate:
|
|
525
|
+
|
|
526
|
+
- **Non-streaming** (`operate()`, `send()`): capped at 16,384 tokens —
|
|
527
|
+
larger non-streaming responses risk HTTP timeouts (stream instead)
|
|
528
|
+
- **Streaming** (`stream()`): the model maximum — e.g., 128,000 for current
|
|
529
|
+
Claude models (64,000 for Haiku), 65,536 for Gemini 2.5/3.x
|
|
530
|
+
|
|
531
|
+
Override per call with `providerOptions`:
|
|
532
|
+
|
|
533
|
+
```typescript
|
|
534
|
+
// Anthropic: max_tokens
|
|
535
|
+
await Llm.operate(input, {
|
|
536
|
+
model: "claude-sonnet-4-6",
|
|
537
|
+
providerOptions: { max_tokens: 32000 },
|
|
538
|
+
});
|
|
539
|
+
|
|
540
|
+
// Google: maxOutputTokens
|
|
541
|
+
await Llm.operate(input, {
|
|
542
|
+
model: "gemini-3.1-pro-preview",
|
|
543
|
+
providerOptions: { maxOutputTokens: 32000 },
|
|
544
|
+
});
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
OpenAI and xAI leave the limit unset (their defaults do not truncate early).
|
|
548
|
+
OpenRouter varies by routed model; pass `max_tokens` via `providerOptions`
|
|
549
|
+
when needed. A truncated response surfaces `stop_reason: "max_tokens"` —
|
|
550
|
+
raise the limit or switch to `stream()`.
|
|
551
|
+
|
|
513
552
|
## See Also
|
|
514
553
|
|
|
515
554
|
- **`skill("streaming")`** - Streaming LLM responses to Lambda and Express with `createLambdaStream`
|
package/skills/services.md
CHANGED
|
@@ -173,9 +173,23 @@ describe("getUser", () => {
|
|
|
173
173
|
});
|
|
174
174
|
```
|
|
175
175
|
|
|
176
|
+
## Parameters vs Context
|
|
177
|
+
|
|
178
|
+
Plain service functions above take only domain input (`userId`, `input`). Fabric's `ServiceFunction` type adds a second, optional argument:
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
type ServiceFunction<TInput, TOutput> = (
|
|
182
|
+
input: TInput,
|
|
183
|
+
context?: ServiceContext,
|
|
184
|
+
) => TOutput | Promise<TOutput>;
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
`parameters`/`input` is validated domain input; `context` is the surrounding scope the service runs within — error/fatal callbacks, progress messaging, and (via `fabricHttp`) auth results and raw HTTP request metadata. See `skill("fabric")` and `skill("vocabulary")` (`Context: scope in which propositions hold`) for the full pattern.
|
|
188
|
+
|
|
176
189
|
## See Also
|
|
177
190
|
|
|
178
191
|
- **`skill("fabric")`** - Fabric service pattern for multi-platform deployment
|
|
179
192
|
- **`skill("handlers")`** - Handler lifecycle and integration with services
|
|
180
193
|
- **`skill("models")`** - Data model and type definitions
|
|
194
|
+
- **`skill("vocabulary")`** - Reserved terms including `context` as a Fabric Service Attribute
|
|
181
195
|
|
package/skills/vocabulary.md
CHANGED
|
@@ -26,6 +26,7 @@ Arguably identity, instance, and relation would form a more complete vocabulary.
|
|
|
26
26
|
### Further Postulates
|
|
27
27
|
|
|
28
28
|
- "Events" trigger "actions"
|
|
29
|
+
- Events open cases; cases fall into scenarios; scenarios prescribe plans; jobs run plans against cases
|
|
29
30
|
|
|
30
31
|
## Attribute Definitions
|
|
31
32
|
|
|
@@ -65,6 +66,7 @@ Arguably identity, instance, and relation would form a more complete vocabulary.
|
|
|
65
66
|
- data => input, state; `data` is a parameter passed for interpolation or response field signaling success
|
|
66
67
|
- jaypie; reserved
|
|
67
68
|
- key => alias; make api or secret keys explicit in name
|
|
69
|
+
- kind => category, tags; same rationale as `type`
|
|
68
70
|
- ou => scope
|
|
69
71
|
- output => state
|
|
70
72
|
- type => category, tags; reserved (exception: `indexModelType` GSI exists in DynamoDB as a legacy pattern; prefer `category` for new work)
|
|
@@ -75,6 +77,15 @@ Avoid words defined elsewhere (services, terminology)
|
|
|
75
77
|
|
|
76
78
|
- job
|
|
77
79
|
- message
|
|
80
|
+
- plan
|
|
81
|
+
- case
|
|
82
|
+
- scenario
|
|
83
|
+
|
|
84
|
+
### Model Definitions
|
|
85
|
+
|
|
86
|
+
- plan: a persisted definition an executor runs; what a job executes. plan : job :: definition : run. A composition projected into data is a plan. Suggested attributes: `alias`, `name`, `description`, `category` (a vocabulary under the model — e.g. composition plans use `workflow` | `agent`), optional `definitionHash` (content hash gating idempotent reseeds), optional `source` (provenance)
|
|
87
|
+
- case: the subject entity a job operates on; long-lived, accretes jobs and messages over time. Jobs reference their case via `job.case` (optional — jobs usually operate on a case; system jobs may not). Neither model requires the other: a case exists before any job runs on it, and a case never stores a job list (query jobs by case)
|
|
88
|
+
- scenario: a named category of cases (see Category in Ontological Grounding). `case.category` holds the scenario alias; the scenario model defines the category itself: `alias`, `name`, `description`, and `plans` (references) — scenarios prescribe which plans respond to them
|
|
78
89
|
|
|
79
90
|
### Implied Attributes
|
|
80
91
|
|