@jaypie/mcp 0.8.71 → 0.8.73

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.71#38772586"
12
+ const BUILD_VERSION_STRING = "@jaypie/mcp@0.8.73#8addc2dd"
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.71",
3
+ "version": "0.8.73",
4
4
  "description": "Jaypie MCP",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,13 @@
1
+ ---
2
+ version: 1.2.64
3
+ date: 2026-06-17
4
+ summary: Pass Datadog LLM Observability env vars to Lambdas; bump Datadog layer versions
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - `jaypieLambdaEnv` (and therefore every `JaypieLambda` derivative) now passes Datadog LLM Observability environment variables through to the Lambda at synth time:
10
+ - `DD_LLMOBS_ENABLED` is forwarded from `process.env` when set.
11
+ - `DD_LLMOBS_ML_APP` is forwarded when set, **unless** observability is disabled (`DD_LLMOBS_ENABLED` resolves to `"false"` or `"0"`).
12
+ - Explicit `environment` props win over `process.env`, including for the disable gate — `environment: { DD_LLMOBS_ENABLED: "false" }` suppresses the `DD_LLMOBS_ML_APP` passthrough.
13
+ - Bumps Datadog Lambda layers to `NODE: 139` and `EXTENSION: 97`.
@@ -0,0 +1,14 @@
1
+ ---
2
+ version: 1.2.40
3
+ date: 2026-06-17
4
+ summary: Opt-in Datadog LLM Observability span emission from operate()/stream() via DD_LLMOBS_ENABLED
5
+ ---
6
+
7
+ ## @jaypie/llm 1.2.40
8
+
9
+ ### Features
10
+
11
+ - **LLM Observability**: When `DD_LLMOBS_ENABLED` is set, `operate()` and `stream()` emit Datadog `llm`/`tool` spans (annotated with input, output, and token metrics) plus an enclosing `agent`/`llm` span — no code changes required (#373).
12
+ - Lazy, **bundler-safe** `dd-trace` resolution (computed module specifier); `dd-trace` is not a dependency. Fully no-op when the flag is unset or `dd-trace` is absent, and instrumentation failures never break the underlying call.
13
+ - Parenting is AsyncLocalStorage-based: spans attach to any active enclosing LLMObs span (e.g. a consumer `llmobs.trace({ kind: "workflow" })`).
14
+ - `operate()` spans nest fully (model + tool under the enclosing span). `stream()` spans attach to an active enclosing span but are siblings within a single stream (the held-open streamed model span is not active when tools run).
@@ -0,0 +1,10 @@
1
+ ---
2
+ version: 0.8.72
3
+ date: 2026-06-17
4
+ summary: Add @jaypie/llm 1.2.40 release notes; document LLM Observability (DD_LLMOBS_ENABLED) in the llm skill
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - Adds release notes for `@jaypie/llm` 1.2.40 (opt-in Datadog LLM Observability span emission).
10
+ - Documents the `DD_LLMOBS_ENABLED` LLM Observability behavior and span parenting semantics in the `llm` skill.
@@ -0,0 +1,10 @@
1
+ ---
2
+ version: 0.8.73
3
+ date: 2026-06-17
4
+ summary: Add @jaypie/constructs 1.2.64 release notes; document LLM Observability env passthrough in the cdk skill
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - Adds release notes for `@jaypie/constructs` 1.2.64 (Datadog LLM Observability env passthrough; Datadog layer bumps).
10
+ - Documents the `DD_LLMOBS_ENABLED` / `DD_LLMOBS_ML_APP` synth-time passthrough behavior in the `cdk` skill.
package/skills/cdk.md CHANGED
@@ -292,6 +292,10 @@ const handler = new JaypieLambda(this, "Handler", {
292
292
  });
293
293
  ```
294
294
 
295
+ ### LLM Observability passthrough
296
+
297
+ If `DD_LLMOBS_ENABLED` is set at synth time, `JaypieLambda` (and every derivative) forwards it to the Lambda environment. `DD_LLMOBS_ML_APP` is forwarded too — **unless** observability is disabled (`DD_LLMOBS_ENABLED` resolves to `"false"` or `"0"`). Explicit `environment` props win over `process.env`, including the disable gate, so `environment: { DD_LLMOBS_ENABLED: "false" }` suppresses the `DD_LLMOBS_ML_APP` passthrough. This is the deploy-time half of the runtime opt-in documented in `skill("llm")`.
298
+
295
299
  ## JaypieNextJs
296
300
 
297
301
  Deploy Next.js applications:
package/skills/llm.md CHANGED
@@ -336,6 +336,28 @@ XAI_API_KEY # Required for xAI (Grok)
336
336
 
337
337
  Keys are resolved via `getEnvSecret()` which supports AWS Secrets Manager.
338
338
 
339
+ ## LLM Observability (Datadog)
340
+
341
+ Set `DD_LLMOBS_ENABLED` (any truthy value except `false`/`0`) and `operate()`/`stream()` emit Datadog [LLM Observability](https://docs.datadoghq.com/llm_observability/) spans with **no code changes**:
342
+
343
+ - Enclosing span per call (`agent` when tools are configured, else `llm`)
344
+ - Child `llm` span per model request — annotated with input, output, token metrics
345
+ - Child `tool` span per tool execution — annotated with args + result
346
+
347
+ ```bash
348
+ DD_LLMOBS_ENABLED=true # opt in; unset = fully no-op
349
+ DD_LLMOBS_ML_APP=my-app # ML app name (dd-trace standard)
350
+ ```
351
+
352
+ Behavior:
353
+
354
+ - **Opt-in and lazy** — `dd-trace` is resolved at runtime via a computed module specifier, so it is **bundler-safe** (esbuild will not bundle it) and **not** a dependency. Absence is a silent no-op; instrumentation failures never break the LLM call.
355
+ - **Parenting is AsyncLocalStorage-based** — spans attach to whatever LLMObs span is active when created. Wrapping a call in a consumer span (e.g. `llmobs.trace({ kind: "workflow" }, () => Llm.operate(...))`) nests ours under it. The Datadog Lambda layer provides APM spans automatically, but not an enclosing *LLMObs* span around an arbitrary handler.
356
+ - **`operate()`** spans form a full tree (model + tool nest under the enclosing span).
357
+ - **`stream()`** spans attach to any active enclosing span, but within a single stream the `llm` and `tool` spans are **siblings** — the streamed model span is held open across `yield` boundaries, so it is not the active span when tools run.
358
+
359
+ For esbuild-bundled Lambda handlers that also want dd-trace auto-instrumentation, wire the `dd-trace/esbuild` plugin with `keepNames: true`; the spans above do not require it.
360
+
339
361
  ## Error Handling
340
362
 
341
363
  The package auto-retries rate limits and transient errors: