Skip to content

chore(deps): bump the production group across 1 directory with 16 updates - #92

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/production-65ac011e49
Open

chore(deps): bump the production group across 1 directory with 16 updates#92
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/production-65ac011e49

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 2, 2026

Copy link
Copy Markdown

Bumps the production group with 16 updates in the / directory:

Package From To
@cantoo/pdf-lib 2.7.1 2.8.1
@composio/core 0.10.0 0.14.1
@earendil-works/pi-agent-core 0.79.9 0.84.0
@earendil-works/pi-ai 0.79.9 0.84.0
@earendil-works/pi-coding-agent 0.79.9 0.84.0
@earendil-works/pi-tui 0.79.9 0.84.0
convex 1.41.0 1.43.0
discord.js 14.26.4 14.27.0
grammy 1.44.0 1.45.1
linkedom 0.18.12 0.18.13
minimatch 10.2.5 10.2.6
playwright-core 1.60.0 1.62.1
tar 7.5.16 7.5.22
unpdf 1.6.2 1.8.0
ws 8.21.0 8.21.2
@anthropic-ai/claude-code 2.1.201 2.1.223

Updates @cantoo/pdf-lib from 2.7.1 to 2.8.1

Changelog

Sourced from @​cantoo/pdf-lib's changelog.

2.8.1

Fixed

  • PDFForm.flatten() now also flattens orphaned widget annotations that carry field properties (/FT, /V, …) on the page Annots entry but are not registered in AcroForm.Fields (text fields and stateful checkboxes / radios).

Changed

  • Prefer maintained upstream fontkit v2 for custom font embedding. Subsetting now supports both subset.encode() (fontkit v2+) and subset.encodeStream() (@pdf-lib/fontkit), so existing registrations keep working.
  • Upgrade direct pako dependency from v1 to v2, and force transitive pako installs to ^2.2.0 via Yarn resolutions / npm overrides (consumers should mirror this in their own root package.json).

2.8.0

Added

  • Convert documents to PDF/A-1/2/3 (1B, 2B, 2U, 3B, 3U) with PDFDocument.convertToPDFA() — OutputIntent (bundled sRGB), /ID, and XMP kept in sync with the Info dictionary on save.
  • Embed Factur-X / ZUGFeRD invoice XML with embedFacturX() (PDF/A-3 hybrid + required XMP).
  • Work with XFA forms: read signature fields, scripts, and related helpers on PDFForm.

Fixed

  • HTML closing tags that span multiple lines are parsed correctly.
  • Saved PDFs keep their original %PDF-x.y header (writers no longer always force 1.7). Object streams on older files bump the header to 1.7 when needed.

Notes

  • PDF/A / Factur-X helpers add the structural pieces only — they do not rewrite page content or generate/validate invoice XML. Use embedded fonts and validate with veraPDF (and a Factur-X checker for e-invoices).
Commits
  • 05623bb Release 2.8.1
  • 07aa822 fix: flatten orphaned widget annotations in form.flatten()
  • 49281ac Bump pako and fontkit
  • 7d95441 Release 2.8.0
  • 6664cb0 Update changelog and lint
  • f9684e5 Harden PDF/A metadata ownership and Factur-X re-embeds
  • 96c8a0c Compact XFA and JavaScript action helpers after merge
  • 5de90e1 Document PDF/A and Factur-X support
  • 82cd48f Add embedFacturX helper for PDF/A-3 e-invoices
  • 48a0f39 Harden PDF/A metadata sync and header handling
  • Additional commits viewable in compare view

Updates @composio/core from 0.10.0 to 0.14.1

Release notes

Sourced from @​composio/core's releases.

@​composio/core@​0.14.1

Patch Changes

  • 577a3d4: Replace the backtracking leading/trailing-slash-trim regexes in the Cloudflare Workers/Edge platform path helpers with index-walk loops, closing a polynomial-time regular expression denial-of-service (CodeQL js/polynomial-redos) on long runs of slash characters. Output is unchanged for every input.
  • 503b50a: Refresh runtime dependencies across the TypeScript SDK packages.
  • 2f63fe5: Guard Tool Router session URL uploads against SSRF, revalidate redirect targets, and enforce a streamed 100 MiB response limit across TypeScript URL upload paths.

@​composio/core@​0.14.0

Minor Changes

  • fc17c37: Export the sensitive-file-upload denylist guard from the package root so downstream packages share one implementation: assertSafeFileUploadPath, isBlockedSensitiveFileUploadPath, and BUILTIN_FILE_UPLOAD_PATH_DENY_SEGMENTS. The guard now routes its filesystem access through the internal #platform abstraction (adding a realpathSync platform method), so it is edge/workerd-safe and the module carries no static node:* imports. Behavior on Node/Bun is unchanged.

  • 20a4711: triggers.create now resolves the connection from user_id on the backend instead of client-side.

    • The SDK no longer makes an extra connectedAccounts.list() call. When connectedAccountId is omitted, the backend resolves the first active connection for the user and the trigger's toolkit (ordered by most recently created), matching tool execution.
    • Behavior change: create no longer throws ComposioConnectedAccountNotFoundError for a missing or invalid connection. That case now surfaces as the backend error from the upsert call. ComposioTriggerTypeNotFoundError (invalid slug) and ValidationError (including empty userId) are still thrown client-side.
    • Requires a backend that resolves the trigger connection from user_id on upsert (ComposioHQ/platform#10932). Self-hosted deployments must be on a version that includes it.

Patch Changes

  • 7125576: Normalize duplicate JSON Schema required entries before provider tool schemas are emitted.

  • 58bc93b: Refresh dependency ranges and lockfiles across the workspace.

  • 4c3a321: Disable client retries on tools.execute and tools.proxyExecute. These are non-idempotent writes, so a silent retry after a read timeout could duplicate the side effect (e.g. send the same email more than once). Both now route through a sibling client built with maxRetries: 0; reads keep the default retry behaviour.

  • b07fcad: Add an eve provider: EveProvider makes session.tools() return eve-native defineTools, defineComposioTools is the replay-safe step.started resolver, and (ctx, next) hooks can rewrite, deny, or transform Tool Router meta-tool calls.

    Preserve successful local-tool results when the remote half of a mixed COMPOSIO_MULTI_EXECUTE_TOOL batch fails at the transport layer, so callers can see which side effects already completed before retrying.

  • fa933a6: Fix the homepage links in these packages' package.json. They pointed at github.com/ComposioHQ/composio/tree/main/..., but the default branch is next and no main branch exists, so every link 404'd on npm and in editor tooltips. They now point at tree/next/....

  • 2ef40ce: Treat local file paths that begin with http as paths instead of URLs, ensuring that upload allowlist and sensitive-file denylist checks still run.

  • e78ed31: Execute every parallel tool call in OpenAIProvider.handleToolCalls. It previously only ran the first tool call in each assistant message, so parallel tool calls (on by default) dropped the rest and left their tool_call_ids unanswered, failing the next request.

    The calls are run sequentially, in the order the model returned them — here "parallel" means the model issued several calls in one turn, not that they execute concurrently — so each tool_call_id is answered exactly once and the tool messages come back in a deterministic order.

    Only the first choice is handled. Tool results are fed back into a single assistant turn, so with n > 1 iterating over every choice would run each tool call once per choice and orphan the tool_call_ids from the alternative completions.

  • a0f37a7: Close two secret/SSRF exposure surfaces in the TypeScript SDK:

    • SSRF guard on URL file inputs. composio.files.upload(url) and automatic file upload during tool execution previously did a raw fetch() on user-supplied URLs with no guard. They now resolve the host and refuse private, loopback, link-local (incl. the 169.254.169.254 cloud-metadata endpoint), CGNAT, and reserved addresses, reject non-http(s) schemes, and follow redirects manually so each hop is re-validated (blocking a public URL that redirects into internal space). Blocked requests throw ComposioBlockedInternalUrlError. Node-only; behaviour for public URLs is unchanged.
    • Telemetry redaction. Error telemetry previously shipped error.message / error.stack verbatim. They are now passed through a redactor that strips URL query strings, Authorization bearer/basic credentials, and secret-like key=value pairs (API keys, tokens, client secrets, passwords) before transport.
  • 820abb9: Resolve toolkit version pins case-insensitively. Version maps are keyed by normalized (lowercase) slugs, but getToolkitVersion previously looked them up with the raw slug, so a pin configured under a different casing (e.g. { GitHub: '20250101_00' } or COMPOSIO_TOOLKIT_VERSION_GITHUB) could silently fall back to 'latest'. Normalization is now centralized in a single normalizeToolkitSlug helper used symmetrically on both the write (map-building) and read (lookup) paths, so the two sides can no longer drift. This mirrors the equivalent fix in the Python SDK.

  • Updated dependencies [58bc93b]

  • Updated dependencies [fa933a6]

    • @​composio/json-schema-to-zod@​0.2.1

@​composio/core@​0.13.1

Patch Changes

  • 605a726: Add Tool Router session deletion APIs.

@​composio/core@​0.13.0

... (truncated)

Changelog

Sourced from @​composio/core's changelog.

0.14.1

Patch Changes

  • 577a3d4: Replace the backtracking leading/trailing-slash-trim regexes in the Cloudflare Workers/Edge platform path helpers with index-walk loops, closing a polynomial-time regular expression denial-of-service (CodeQL js/polynomial-redos) on long runs of slash characters. Output is unchanged for every input.
  • 503b50a: Refresh runtime dependencies across the TypeScript SDK packages.
  • 2f63fe5: Guard Tool Router session URL uploads against SSRF, revalidate redirect targets, and enforce a streamed 100 MiB response limit across TypeScript URL upload paths.

0.14.0

Minor Changes

  • fc17c37: Export the sensitive-file-upload denylist guard from the package root so downstream packages share one implementation: assertSafeFileUploadPath, isBlockedSensitiveFileUploadPath, and BUILTIN_FILE_UPLOAD_PATH_DENY_SEGMENTS. The guard now routes its filesystem access through the internal #platform abstraction (adding a realpathSync platform method), so it is edge/workerd-safe and the module carries no static node:* imports. Behavior on Node/Bun is unchanged.

  • 20a4711: triggers.create now resolves the connection from user_id on the backend instead of client-side.

    • The SDK no longer makes an extra connectedAccounts.list() call. When connectedAccountId is omitted, the backend resolves the first active connection for the user and the trigger's toolkit (ordered by most recently created), matching tool execution.
    • Behavior change: create no longer throws ComposioConnectedAccountNotFoundError for a missing or invalid connection. That case now surfaces as the backend error from the upsert call. ComposioTriggerTypeNotFoundError (invalid slug) and ValidationError (including empty userId) are still thrown client-side.
    • Requires a backend that resolves the trigger connection from user_id on upsert (ComposioHQ/platform#10932). Self-hosted deployments must be on a version that includes it.

Patch Changes

  • 7125576: Normalize duplicate JSON Schema required entries before provider tool schemas are emitted.

  • 58bc93b: Refresh dependency ranges and lockfiles across the workspace.

  • 4c3a321: Disable client retries on tools.execute and tools.proxyExecute. These are non-idempotent writes, so a silent retry after a read timeout could duplicate the side effect (e.g. send the same email more than once). Both now route through a sibling client built with maxRetries: 0; reads keep the default retry behaviour.

  • b07fcad: Add an eve provider: EveProvider makes session.tools() return eve-native defineTools, defineComposioTools is the replay-safe step.started resolver, and (ctx, next) hooks can rewrite, deny, or transform Tool Router meta-tool calls.

    Preserve successful local-tool results when the remote half of a mixed COMPOSIO_MULTI_EXECUTE_TOOL batch fails at the transport layer, so callers can see which side effects already completed before retrying.

  • fa933a6: Fix the homepage links in these packages' package.json. They pointed at github.com/ComposioHQ/composio/tree/main/..., but the default branch is next and no main branch exists, so every link 404'd on npm and in editor tooltips. They now point at tree/next/....

  • 2ef40ce: Treat local file paths that begin with http as paths instead of URLs, ensuring that upload allowlist and sensitive-file denylist checks still run.

  • e78ed31: Execute every parallel tool call in OpenAIProvider.handleToolCalls. It previously only ran the first tool call in each assistant message, so parallel tool calls (on by default) dropped the rest and left their tool_call_ids unanswered, failing the next request.

    The calls are run sequentially, in the order the model returned them — here "parallel" means the model issued several calls in one turn, not that they execute concurrently — so each tool_call_id is answered exactly once and the tool messages come back in a deterministic order.

    Only the first choice is handled. Tool results are fed back into a single assistant turn, so with n > 1 iterating over every choice would run each tool call once per choice and orphan the tool_call_ids from the alternative completions.

  • a0f37a7: Close two secret/SSRF exposure surfaces in the TypeScript SDK:

    • SSRF guard on URL file inputs. composio.files.upload(url) and automatic file upload during tool execution previously did a raw fetch() on user-supplied URLs with no guard. They now resolve the host and refuse private, loopback, link-local (incl. the 169.254.169.254 cloud-metadata endpoint), CGNAT, and reserved addresses, reject non-http(s) schemes, and follow redirects manually so each hop is re-validated (blocking a public URL that redirects into internal space). Blocked requests throw ComposioBlockedInternalUrlError. Node-only; behaviour for public URLs is unchanged.
    • Telemetry redaction. Error telemetry previously shipped error.message / error.stack verbatim. They are now passed through a redactor that strips URL query strings, Authorization bearer/basic credentials, and secret-like key=value pairs (API keys, tokens, client secrets, passwords) before transport.
  • 820abb9: Resolve toolkit version pins case-insensitively. Version maps are keyed by normalized (lowercase) slugs, but getToolkitVersion previously looked them up with the raw slug, so a pin configured under a different casing (e.g. { GitHub: '20250101_00' } or COMPOSIO_TOOLKIT_VERSION_GITHUB) could silently fall back to 'latest'. Normalization is now centralized in a single normalizeToolkitSlug helper used symmetrically on both the write (map-building) and read (lookup) paths, so the two sides can no longer drift. This mirrors the equivalent fix in the Python SDK.

  • Updated dependencies [58bc93b]

  • Updated dependencies [fa933a6]

    • @​composio/json-schema-to-zod@​0.2.1

0.13.1

Patch Changes

... (truncated)

Commits
  • fdbd44f Release: update version (#3906)
  • 2b9571b fix(core): resolve typedoc against the TS6 compiler API (#3972)
  • 022ecf6 docs(agents): require zod and effect/Schema at data boundaries (#3969)
  • 577a3d4 security: fix 3 CodeQL alerts (2026-07-22) (#3909)
  • 503b50a chore(deps): refresh SDK, Python, and CI dependencies (#3955)
  • 2f63fe5 fix(core): secure Tool Router session URL uploads (#3900)
  • 26f3c62 Release: update version (#3717)
  • fbcf081 revert(core): defer v1 session alias removal (#3826)
  • fa933a6 fix(ts): point published package homepage links at the next branch (#3821)
  • 7125576 fix(schema): normalize duplicate required entries (#3812)
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for @​composio/core since your current version.


Updates @earendil-works/pi-agent-core from 0.79.9 to 0.84.0

Release notes

Sourced from @​earendil-works/pi-agent-core's releases.

v0.84.0

New Features

  • Fullscreen TUI mode — Switch between regular and fullscreen modes at runtime, with a sticky editor and footer, independently scrollable transcript, and draggable scrollbars. See UI & Display.
  • Mermaid and LaTeX rendering — Render Mermaid diagrams and terminal-friendly Unicode math in interactive transcripts. See Markdown settings and TUI Markdown.
  • Per-directory context overrides — Use AGENTS.override.md to replace context files for a specific directory. See Context Files.
  • Advanced custom model sampling — Configure arbitrary OpenAI-compatible samplingParams and opt-in vLLM thinking_token_budget values. See Sampling Parameters.
  • Baseten provider — Use built-in Baseten authentication and model support. See API Keys.

Breaking Changes

  • Renamed the inherited pi-ai ModelsStreamTransforms interface to ModelsRequestTransforms because its header transformation now applies to all authenticated provider requests.

  • Changed JSON and RPC message_update events to emit only assistantMessageEvent deltas, removing the cumulative message and assistantMessageEvent.partial fields that caused quadratic output growth. Clients that need partial messages must assemble deltas between message_start and message_end; the latter remains authoritative (#7290).

  • ModelRegistry.getApiKeyAndHeaders() now returns ProviderHeaders with string | null values and preserves null header-deletion markers. Extensions that inspect returned headers must handle null; extensions forwarding them to pi-ai streams should pass them through unchanged. This prevents placeholder OpenAI credentials from being sent through Cloudflare AI Gateway (#7030).

  • Changed ModelRegistry.refresh() to accept ModelsRefreshOptions and return ModelsRefreshResult instead of discarding cancellation and provider errors.

  • Changed ModelRuntime.setRuntimeApiKey() to accept auth cancellation options rather than catalog refresh options. Call refresh({ providers: [providerId], signal }) separately when remote freshness is required.

  • Required config-form extension OAuth refreshToken(credentials, signal) callbacks to accept and honor a concrete abort signal.

  • Replaced dynamic provider refresh context store access with the read-only context.stored snapshot and generation-checked context.publish() transaction.

    Providers built with createProvider({ fetchModels }): no catalog-publication migration is required. Before and after, return the fetched models and register the resulting provider; createProvider() owns restoration, persistence, and in-memory publication.

    // Before
    const beforeProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });
    pi.registerProvider(beforeProvider);
    // After: unchanged
    const afterProvider = createProvider({
    // ...
    fetchModels: async ({ signal }) => {
    const response = await fetch(catalogUrl, { signal });
    return parseModels(await response.json());
    },
    });
    pi.registerProvider(afterProvider);

    Handwritten native Provider.refreshModels(): replace direct store access and pre-publication mutation with generation-guarded publications.

    // Before
    refreshModels: async (context) => {
      const stored = await context.store.read();
      if (stored) currentModels = stored.models;

... (truncated)

Changelog

Sourced from @​earendil-works/pi-agent-core's changelog.

[0.84.0] - 2026-08-06

Breaking Changes

  • Replaced the legacy harness session model with the v4 lane-based Session, SessionStorage, and SessionRepo APIs, including durable operation records, global facts, shared sequence numbers, and tree-scoped lane views.
  • Promoted the v2 session and AgentHarness API from the experimental entrypoint to the default package export and removed the experimental subpaths.
  • Removed the legacy JSONL and in-memory repository APIs. Use the v4 JsonlSessionRepo or InMemorySessionRepo, both implementing the new SessionRepo contract.
  • Added the required FileSystem.renameFile() operation to harness execution environments for atomic JSONL publication; custom file-system implementations must provide same-filesystem replacement semantics (#7707 by @​davidbrai).

Added

  • Added typed AI-request and harness telemetry schemas, their combined schema tuple, callback helpers, and a generated schema reference.
  • Added bounded Session.findEntriesOnBranch() and findEntryOnBranch() queries with explicit traversal, filtering, ordering, and limit options.
  • Added a compile-complete AgentHarness v2 scaffold; unfinished operation paths reject with HarnessNotImplemented while durable execution is implemented.
  • Added JsonlSessionRepo, a v4 append-only JSONL session repository with metadata validation and shared storage semantics (#7611 by @​davidbrai).
  • Added indexed Session.findOpenOperations() recovery queries and RecordQuery.operationKind filtering (#7646).
  • Added AgentOptions.shouldStopAfterTurn for gracefully stopping after a completed turn before queued messages or another model call are processed. See Agent Options (#7367 by @​acmerfight).
  • Added proxy forwarding for arbitrary OpenAI-compatible samplingParams (#7568 by @​mrexodia).

Fixed

  • Fixed Windows path handling for NodeExecutionEnv file basenames, recursive skill loading, and prompt template names.
  • Fixed JsonlSessionRepo enforcing session IDs globally across working directories; IDs are now unique within each working directory.
  • Fixed JSONL session forks and torn-tail repairs to publish atomically, avoiding partially written or corrupted sessions after interrupted writes (#7707 by @​davidbrai).

[0.83.0] - 2026-07-29

[0.82.1] - 2026-07-25

[0.82.0] - 2026-07-24

Breaking Changes

  • Replaced AgentHarness's ExecutionEnv dependency and context-free AgentTool inputs with application-defined toolContext values and context-aware AgentHarnessTool definitions.

Added

  • Added context-aware read, write, edit, and bash harness tools backed by ExecutionEnv, including async bash execution preparation.

Changed

  • Aligned harness tool path handling, edit serialization, shell output capture, explicit non-inherited environments, and cross-platform process cleanup with coding-agent behavior.

Fixed

  • Fixed compaction and branch-summary requests to use fresh routing session IDs with prompt caching disabled where supported (#6618 by @​tmustier).

[0.81.1] - 2026-07-21

Added

... (truncated)

Commits
  • a5f43bf Release v0.84.0
  • 6d0455f docs: audit unreleased changelogs
  • 5cd46ee docs(agent): simplify harness work package workflow
  • 29ad292 fix(agent): simplify jsonl append failure test
  • a838c06 harness-v2 jsonl session atomic writes for forks & torn-tail truncation (#7707)
  • fadb74f docs(agent): separate harness design from implementation status
  • 35f5c26 feat: add telemetry reference adapter and span composition
  • 7f63f37 docs: add missed JSONL matrix rows
  • 77f4840 chore: qa2 tests (#7706)
  • 9859eaa docs: reserve QA2
  • Additional commits viewable in compare view

Updates @earendil-works/pi-ai from 0.79.9 to 0.84.0

Release notes

Sourced from @​earendil-works/pi-ai's releases.

v0.84.0

New Features

  • Fullscreen TUI mode — Switch between regular and fullscreen modes at runtime, with a sticky editor and footer, independently scrollable transcript, and draggable scrollbars. See UI & Display.
  • Mermaid and LaTeX rendering — Render Mermaid diagrams and terminal-friendly Unicode math in interactive transcripts. See Markdown settings and TUI Markdown.
  • Per-directory context overrides — Use AGENTS.override.md to replace context files for a specific directory. See Context Files.
  • Advanced custom model sampling — Configure arbitrary OpenAI-compatible samplingParams and opt-in vLLM thinking_token_budget values. See Sampling Parameters.
  • Baseten provider — Use built-in Baseten authentication and model support. See API Keys.

Breaking Changes

  • Renamed the inherited pi-ai ModelsStreamTransforms interface to ModelsRequestTransforms because its header transformation now applies to all authenticated provider requests.

  • Changed JSON and RPC message_update events to emit only assistantMessageEvent deltas, removing the cumulative message and assistantMessageEvent.partial fields that caused quadratic output growth. Clients that need partial messages must assemble deltas between message_start and message_end; the latter remains authoritative (#7290).

  • ModelRegistry.getApiKeyAndHeaders() now returns ProviderHeaders with string | null values and preserves null header-deletion markers. Extensions that inspect returned headers must handle null; extensions forwarding them to pi-ai streams should pass them through unchanged. This prevents placeholder OpenAI credentials from being sent through Cloudflare AI Gateway (#7030).

  • Changed ModelRegistry.refresh() to accept ModelsRefreshOptions and return ModelsRefreshResult instead of discarding cancellation and provider errors.

  • Changed ModelRuntime.setRuntimeApiKey() to accept auth cancellation options rather than catalog refresh options. Call refresh({ providers: [providerId], signal }) separately when remote freshness is required.

  • Required config-form extension OAuth refreshToken(credentials, signal) callbacks to accept and honor a concrete abort signal.

  • Replaced dynamic provider refresh context store access with the read-only context.stored snapshot and generation-checked context.publish() transaction.

    Providers built with createProvider({ fetchModels }): no catalog-publication migration is required. Before and after, return the fetched models and register the resulting provider; createProvider() owns restoration, persistence, and in-memory publication.

    // Before
    const beforeProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });
    pi.registerProvider(beforeProvider);
    // After: unchanged
    const afterProvider = createProvider({
    // ...
    fetchModels: async ({ signal }) => {
    const response = await fetch(catalogUrl, { signal });
    return parseModels(await response.json());
    },
    });
    pi.registerProvider(afterProvider);

    Handwritten native Provider.refreshModels(): replace direct store access and pre-publication mutation with generation-guarded publications.

    // Before
    refreshModels: async (context) => {
      const stored = await context.store.read();
      if (stored) currentModels = stored.models;

... (truncated)

Changelog

Sourced from @​earendil-works/pi-ai's changelog.

[0.84.0] - 2026-08-06

Breaking Changes

  • Renamed the exported ModelsStreamTransforms interface to ModelsRequestTransforms because its header transformation now applies to all authenticated provider requests.

  • Required dynamic model providers to accept a concrete RefreshModelsContext.signal; Models.refresh() remains unbounded when callers omit its optional signal.

  • Required provider login, API-key check/resolution, and OAuth refresh implementations to accept a concrete abort signal; public auth and credential operations remain unbounded when callers omit their optional signal.

  • Replaced raw RefreshModelsContext.store access with the read-only context.stored snapshot and generation-checked context.publish() transaction.

    createProvider({ fetchModels }): no catalog-publication migration is required. Before and after, return the fetched list; createProvider() restores stored models and publishes and persists refreshed models itself. signal is now guaranteed to be present.

    // Before
    const beforeProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });
    // After: unchanged
    const afterProvider = createProvider({
    // ...
    fetchModels: async ({ signal }) => {
    const response = await fetch(catalogUrl, { signal });
    return parseModels(await response.json());
    },
    });

    Handwritten Provider.refreshModels(): replace direct store access and pre-publication mutation with generation-guarded publications.

    // Before
    refreshModels: async (context) => {
      const stored = await context.store.read();
      if (stored) currentModels = stored.models;
      if (!context.allowNetwork) return;
    const refreshed = await fetchModels(context.signal);
    currentModels = refreshed;
    await context.store.write({ models: refreshed, checkedAt: Date.now() });
    },
    // After
    refreshModels: async (context) => {
    if (context.stored) {
    const restored = context.stored.models;
    if (!(await context.publish({

... (truncated)

Commits
  • a5f43bf Release v0.84.0
  • b9497c8 fix(ai): correct Fireworks GLM prompt caching, closes #7676
  • c0947e6 fix(ai): remove stale adaptive thinking model expectation
  • b0bd0ff fix(coding-agent): only label known subscriptions in footer
  • 6b461b7 feat: extract telemetry package
  • db48124 docs: audit unreleased changelogs
  • 639a466 fix(ai): update Anthropic abort test model
  • d07889d feat(ai): support thinking_token_budget on openai-completions (#7638)
  • 2f7f75a fix(ai): replace qwen3.8-max-preview with qwen3.8-max on token plan (#7670)
  • 14cc26e fix(ai): restore Copilot models from account policy (#7672)
  • Additional commits viewable in compare view

Updates @earendil-works/pi-coding-agent from 0.79.9 to 0.84.0

Release notes

Sourced from @​earendil-works/pi-coding-agent's releases.

v0.84.0

New Features

  • Fullscreen TUI mode — Switch between regular and fullscreen modes at runtime, with a sticky editor and footer, independently scrollable transcript, and draggable scrollbars. See UI & Display.
  • Mermaid and LaTeX rendering — Render Mermaid diagrams and terminal-friendly Unicode math in interactive transcripts. See Markdown settings and TUI Markdown.
  • Per-directory context overrides — Use AGENTS.override.md to replace context files for a specific directory. See Context Files.
  • Advanced custom model sampling — Configure arbitrary OpenAI-compatible samplingParams and opt-in vLLM thinking_token_budget values. See Sampling Parameters.
  • Baseten provider — Use built-in Baseten authentication and model support. See API Keys.

Breaking Changes

  • Renamed the inherited pi-ai ModelsStreamTransforms interface to ModelsRequestTransforms because its header transformation now applies to all authenticated provider requests.

  • Changed JSON and RPC message_update events to emit only assistantMessageEvent deltas, removing the cumulative message and assistantMessageEvent.partial fields that caused quadratic output growth. Clients that need partial messages must assemble deltas between message_start and message_end; the latter remains authoritative (#7290).

  • ModelRegistry.getApiKeyAndHeaders() now returns ProviderHeaders with string | null values and preserves null header-deletion markers. Extensions that inspect returned headers must handle null; extensions forwarding them to pi-ai streams should pass them through unchanged. This prevents placeholder OpenAI credentials from being sent through Cloudflare AI Gateway (#7030).

  • Changed ModelRegistry.refresh() to accept ModelsRefreshOptions and return ModelsRefreshResult instead of discarding cancellation and provider errors.

  • Changed ModelRuntime.setRuntimeApiKey() to accept auth cancellation options rather than catalog refresh options. Call refresh({ providers: [providerId], signal }) separately when remote freshness is required.

  • Required config-form extension OAuth refreshToken(credentials, signal) callbacks to accept and honor a concrete abort signal.

  • Replaced dynamic provider refresh context store access with the read-only context.stored snapshot and generation-checked context.publish() transaction.

    Providers built with createProvider({ fetchModels }): no catalog-publication migration is required. Before and after, return the fetched models and register the resulting provider; createProvider() owns restoration, persistence, and in-memory publication.

    // Before
    const beforeProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });
    pi.registerProvider(beforeProvider);
    // After: unchanged
    const afterProvider = createProvider({
    // ...
    fetchModels: async ({ signal }) => {
    const response = await fetch(catalogUrl, { signal });
    return parseModels(await response.json());
    },
    });
    pi.registerProvider(afterProvider);

    Handwritten native Provider.refreshModels(): replace direct store access and pre-publication mutation with generation-guarded publications.

    // Before
    refreshModels: async (context) => {
      const stored = await context.store.read();
      if (stored) currentModels = stored.models;

... (truncated)

Changelog

Sourced from @​earendil-works/pi-coding-agent's changelog.

[0.84.0] - 2026-08-06

New Features

  • Fullscreen TUI mode — Switch between regular and fullscreen modes at runtime, with a sticky editor and footer, independently scrollable transcript, and draggable scrollbars. See UI & Display.
  • Mermaid and LaTeX rendering — Render Mermaid diagrams and terminal-friendly Unicode math in interactive transcripts. See Markdown settings and TUI Markdown.
  • Per-directory context overrides — Use AGENTS.override.md to replace context files for a specific directory. See Context Files.
  • Advanced custom model sampling — Configure arbitrary OpenAI-compatible samplingParams and opt-in vLLM thinking_token_budget values. See Sampling Parameters.
  • Baseten provider — Use built-in Baseten authentication and model support. See API Keys.

Breaking Changes

  • Renamed the inherited pi-ai ModelsStreamTransforms interface to ModelsRequestTransforms because its header transformation now applies to all authenticated provider requests.

  • Changed JSON and RPC message_update events to emit only assistantMessageEvent deltas, removing the cumulative message and assistantMessageEvent.partial fields that caused quadratic output growth. Clients that need partial messages must assemble deltas between message_start and message_end; the latter remains authoritative (#7290).

  • ModelRegistry.getApiKeyAndHeaders() now returns ProviderHeaders with string | null values and preserves null header-deletion markers. Extensions that inspect returned headers must handle null; extensions forwarding them to pi-ai streams should pass them through unchanged. This prevents placeholder OpenAI credentials from being sent through Cloudflare AI Gateway (#7030).

  • Changed ModelRegistry.refresh() to accept ModelsRefreshOptions and return ModelsRefreshResult instead of discarding cancellation and provider errors.

  • Changed ModelRuntime.setRuntimeApiKey() to accept auth cancellation options rather than catalog refresh options. Call refresh({ providers: [providerId], signal }) separately when remote freshness is required.

  • Required config-form extension OAuth refreshToken(credentials, signal) callbacks to accept and honor a concrete abort signal.

  • Replaced dynamic provider refresh context store access with the read-only context.stored snapshot and generation-checked context.publish() transaction.

    Providers built with createProvider({ fetchModels }): no catalog-publication migration is required. Before and after, return the fetched models and register the resulting provider; createProvider() owns restoration, persistence, and in-memory publication.

    // Before
    const beforeProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });
    pi.registerProvider(beforeProvider);
    // After: unchanged
    const afterProvider = createProvider({
    // ...
    fetchModels: async ({ signal }) => {
    const response = await fetch(catalogUrl, { signal });
    return parseModels(await response.json());
    },
    });
    pi.registerProvider(afterProvider);

    Handwritten native Provider.refreshModels(): replace direct store access and pre-publication mutation with generation-guarded publications.

    // Before
    refreshModels: async (context) => {
      const stored = await context.store.read();

... (truncated)

Commits
  • a5f43bf Release v0.84.0
  • 6d0455f docs: audit unreleased changelogs
  • 6189e53 fix: replace session summaries with durable metadata (#7708)
  • 35f5c26 feat: add telemetry reference adapter and span composition
  • b0bd0ff fix(coding-agent): only label known subscriptions in footer
  • 6b461b7 feat: extract telemetry package
  • db48124 docs: audit unreleased changelogs
  • 5446cd7 feat(coding-agent): rename UI mode to TUI mode
  • 6ca4234 event bus leak fix (#7656)
  • d4eaf05 fix(coding-agent): support path globs on Windows
  • Additional commits viewable in compare view

Updates @earendil-works/pi-tui from 0.79.9 to 0.84.0

Release notes

Sourced from @​earendil-works/pi-tui's releases.

v0.84.0

New Features

  • Fullscreen TUI mode — Switch between regular and fullscreen modes at runtime, with a sticky editor and footer, independently scrollable transcript, and draggable scrollbars. See UI & Display.
  • Mermaid and LaTeX rendering — Render Mermaid diagrams and terminal-friendly Unicode math in interactive transcripts. See Markdown settings and TUI Markdown.
  • Per-directory context overrides — Use AGENTS.override.md to replace context files for a specific directory. See Context Files.
  • Advanced custom model sampling — Configure arbitrary OpenAI-compatible samplingParams and opt-in vLLM thinking_token_budget values. See Sampling Parameters.
  • Baseten provider — Use built-in Baseten authentication and model support. See API Keys.

Breaking Changes

  • Renamed the inherited pi-ai ModelsStreamTransforms interface to ModelsRequestTransforms because its header transformation now applies to all authenticated provider requests.

  • Changed JSON and RPC message_update events to emit only assistantMessageEvent deltas, removing the cumulative message and assistantMessageEvent.partial fields that caused quadratic output growth. Clients that need partial messages must assemble deltas between message_start and message_end; the latter remains authoritative (#7290).

  • ModelRegistry.getApiKeyAndHeaders() now returns ProviderHeaders with string | null values and preserves null header-deletion markers. Extensions that inspect returned headers must handle null; extensions forwarding them to pi-ai streams should pass them through unchanged. This prevents placeholder OpenAI credentials from being sent through Cloudflare AI Gateway (#7030).

  • Changed ModelRegistry.refresh() to accept ModelsRefreshOptions and return ModelsRefreshResult instead of discarding cancellation and provider errors.

  • Changed ModelRuntime.setRuntimeApiKey() to accept auth cancellation options rather than catalog refresh options. Call refresh({ providers: [providerId], signal }) separately when remote freshness is required.

  • Required config-form extension OAuth refreshToken(credentials, signal) callbacks to accept and honor a concrete abort signal.

  • Replaced dynamic provider refresh context store access with the read-only context.stored snapshot and generation-checked context.publish() transaction.

    Providers built with createProvider({ fetchModels }): no catalog-publication migration is required. Before and after, return the fetched models and register the resulting provider; createProvider() owns restoration, persistence, and in-memory publication.

    // Before
    const beforeProvider = createProvider({
      // ...
      fetchModels: async ({ signal }) => {
        const response = await fetch(catalogUrl, { signal });
        return parseModels(await response.json());
      },
    });
    pi.registerProvider(beforeProvider);
    // After: unchanged
    const afterProvider = createProvider({
    // ...
    fetchModels: async ({ signal }) => {
    const response = await fetch(catalogUrl, { signal });
    return parseModels(await response.json());
    },
    });
    pi.registerProvider(afterProvider);

    Handwritten native Provider.refreshModels(): replace direct store access and pre-publication mutation with generation-guarded publications.

    // Before
    refreshModels: async (context) => {
      const stored = await context.store.read();
      if (stored) currentModels = stored.models;

... (truncated)

Changelog

Sourced from @​earendil-works/pi-tui's changelog.

[0.84.0] - 2026-08-06

Added

  • Added terminal-friendly Unicode rendering for LaTeX expressions in Markdown, including inline and display math, fractions, scripts, common symbols, aligned equations, cases, and matrices.
  • Added the shared TuiMode type and mode discriminants to the main-screen and alternate-screen TUI renderers.
  • Added TUI lifecycle and render-state handoff APIs for replacing renderers without replaying main-screen content.
  • Exported the bundled Marked parser and token types.
  • Added width-aware source transforms to the Markdown component.
  • Added interface-compatible main-screen and alternate-screen TUI renderers with application-owned scrolling (

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Aug 2, 2026
@dependabot
dependabot Bot requested a review from Bhasvanth-Dev9380 as a code owner August 2, 2026 11:34
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Aug 2, 2026
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Dependency Review

The following issues were found:

  • ❌ 1 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ✅ 0 package(s) with unknown licenses.
  • ⚠️ 2 packages with OpenSSF Scorecard issues.

View full job summary

…ates

Bumps the production group with 16 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@cantoo/pdf-lib](https://github.com/cantoo-scribe/pdf-lib) | `2.7.1` | `2.8.1` |
| [@composio/core](https://github.com/ComposioHQ/composio/tree/HEAD/ts/packages/core) | `0.10.0` | `0.14.1` |
| [@earendil-works/pi-agent-core](https://github.com/earendil-works/pi/tree/HEAD/packages/agent) | `0.79.9` | `0.84.0` |
| [@earendil-works/pi-ai](https://github.com/earendil-works/pi/tree/HEAD/packages/ai) | `0.79.9` | `0.84.0` |
| [@earendil-works/pi-coding-agent](https://github.com/earendil-works/pi/tree/HEAD/packages/coding-agent) | `0.79.9` | `0.84.0` |
| [@earendil-works/pi-tui](https://github.com/earendil-works/pi/tree/HEAD/packages/tui) | `0.79.9` | `0.84.0` |
| [convex](https://github.com/get-convex/convex-backend/tree/HEAD/npm-packages/convex) | `1.41.0` | `1.43.0` |
| [discord.js](https://github.com/discordjs/discord.js/tree/HEAD/packages/discord.js) | `14.26.4` | `14.27.0` |
| [grammy](https://github.com/grammyjs/grammY) | `1.44.0` | `1.45.1` |
| [linkedom](https://github.com/WebReflection/linkedom) | `0.18.12` | `0.18.13` |
| [minimatch](https://github.com/isaacs/minimatch) | `10.2.5` | `10.2.6` |
| [playwright-core](https://github.com/microsoft/playwright) | `1.60.0` | `1.62.1` |
| [tar](https://github.com/isaacs/node-tar) | `7.5.16` | `7.5.22` |
| [unpdf](https://github.com/unjs/unpdf) | `1.6.2` | `1.8.0` |
| [ws](https://github.com/websockets/ws) | `8.21.0` | `8.21.2` |
| [@anthropic-ai/claude-code](https://github.com/anthropics/claude-code) | `2.1.201` | `2.1.223` |



Updates `@cantoo/pdf-lib` from 2.7.1 to 2.8.1
- [Changelog](https://github.com/cantoo-scribe/pdf-lib/blob/master/CHANGELOG.md)
- [Commits](cantoo-scribe/pdf-lib@v2.7.1...v2.8.1)

Updates `@composio/core` from 0.10.0 to 0.14.1
- [Release notes](https://github.com/ComposioHQ/composio/releases)
- [Changelog](https://github.com/ComposioHQ/composio/blob/next/ts/packages/core/CHANGELOG.md)
- [Commits](https://github.com/ComposioHQ/composio/commits/@composio/core@0.14.1/ts/packages/core)

Updates `@earendil-works/pi-agent-core` from 0.79.9 to 0.84.0
- [Release notes](https://github.com/earendil-works/pi/releases)
- [Changelog](https://github.com/earendil-works/pi/blob/main/packages/agent/CHANGELOG.md)
- [Commits](https://github.com/earendil-works/pi/commits/v0.84.0/packages/agent)

Updates `@earendil-works/pi-ai` from 0.79.9 to 0.84.0
- [Release notes](https://github.com/earendil-works/pi/releases)
- [Changelog](https://github.com/earendil-works/pi/blob/main/packages/ai/CHANGELOG.md)
- [Commits](https://github.com/earendil-works/pi/commits/v0.84.0/packages/ai)

Updates `@earendil-works/pi-coding-agent` from 0.79.9 to 0.84.0
- [Release notes](https://github.com/earendil-works/pi/releases)
- [Changelog](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/CHANGELOG.md)
- [Commits](https://github.com/earendil-works/pi/commits/v0.84.0/packages/coding-agent)

Updates `@earendil-works/pi-tui` from 0.79.9 to 0.84.0
- [Release notes](https://github.com/earendil-works/pi/releases)
- [Changelog](https://github.com/earendil-works/pi/blob/main/packages/tui/CHANGELOG.md)
- [Commits](https://github.com/earendil-works/pi/commits/v0.84.0/packages/tui)

Updates `convex` from 1.41.0 to 1.43.0
- [Release notes](https://github.com/get-convex/convex-backend/releases)
- [Changelog](https://github.com/get-convex/convex-backend/blob/main/npm-packages/convex/CHANGELOG.md)
- [Commits](https://github.com/get-convex/convex-backend/commits/HEAD/npm-packages/convex)

Updates `discord.js` from 14.26.4 to 14.27.0
- [Release notes](https://github.com/discordjs/discord.js/releases)
- [Changelog](https://github.com/discordjs/discord.js/blob/14.27.0/packages/discord.js/CHANGELOG.md)
- [Commits](https://github.com/discordjs/discord.js/commits/14.27.0/packages/discord.js)

Updates `grammy` from 1.44.0 to 1.45.1
- [Release notes](https://github.com/grammyjs/grammY/releases)
- [Commits](grammyjs/grammY@v1.44.0...v1.45.1)

Updates `linkedom` from 0.18.12 to 0.18.13
- [Commits](WebReflection/linkedom@v0.18.12...v0.18.13)

Updates `minimatch` from 10.2.5 to 10.2.6
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v10.2.5...v10.2.6)

Updates `playwright-core` from 1.60.0 to 1.62.1
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.60.0...v1.62.1)

Updates `tar` from 7.5.16 to 7.5.22
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](isaacs/node-tar@v7.5.16...v7.5.22)

Updates `unpdf` from 1.6.2 to 1.8.0
- [Release notes](https://github.com/unjs/unpdf/releases)
- [Commits](unjs/unpdf@v1.6.2...v1.8.0)

Updates `ws` from 8.21.0 to 8.21.2
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](websockets/ws@8.21.0...8.21.2)

Updates `@anthropic-ai/claude-code` from 2.1.201 to 2.1.223
- [Release notes](https://github.com/anthropics/claude-code/releases)
- [Changelog](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md)
- [Commits](anthropics/claude-code@v2.1.201...v2.1.223)

---
updated-dependencies:
- dependency-name: "@anthropic-ai/claude-code"
  dependency-version: 2.1.220
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
- dependency-name: "@cantoo/pdf-lib"
  dependency-version: 2.8.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: "@composio/core"
  dependency-version: 0.14.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: "@earendil-works/pi-agent-core"
  dependency-version: 0.83.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: "@earendil-works/pi-ai"
  dependency-version: 0.83.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: "@earendil-works/pi-coding-agent"
  dependency-version: 0.83.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: "@earendil-works/pi-tui"
  dependency-version: 0.83.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: convex
  dependency-version: 1.42.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: discord.js
  dependency-version: 14.27.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: grammy
  dependency-version: 1.45.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: linkedom
  dependency-version: 0.18.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
- dependency-name: minimatch
  dependency-version: 10.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
- dependency-name: playwright-core
  dependency-version: 1.62.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: tar
  dependency-version: 7.5.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
- dependency-name: unpdf
  dependency-version: 1.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production
- dependency-name: ws
  dependency-version: 8.21.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/production-65ac011e49 branch from 55d6b5a to 8992819 Compare August 9, 2026 11:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants