Skip to content

[bug]: @sf-agentscript/lsp-server@2.2.30 crashes at startup — variantMatch is not a function (stale @sf-agentscript/language pin) #73

Description

@Booyaka101

Description

The published @sf-agentscript/lsp-server (2.2.30, currently latest) crashes
at startup with TypeError: ...variantMatch is not a function, before the LSP
connection is established. The root cause is a stale exact pin on the transitive
@sf-agentscript/language dependency, so no fresh install of the LSP server
works
(same for @sf-agentscript/lsp@2.3.8).

Steps to Reproduce

  1. npx --yes @sf-agentscript/lsp-server --stdio
    (or npm install -g @sf-agentscript/lsp-server and run agentscript-lsp --stdio)
  2. The process throws immediately, before any LSP handshake.

Expected Behavior

The server starts, completes the LSP initialize handshake, and publishes
diagnostics.

Actual Behavior

Immediate crash at import:

.../@sf-agentscript/agentforce-dialect/dist/schema.js:217
    .variantMatch('byon', (value) => value.startsWith(BYON_SCHEMA_PREFIX), byonSubagentVariant);
     ^
TypeError: NamedBlock(...).describe(...).discriminant(...).variant(...).variantMatch is not a function

Cause: @sf-agentscript/agentforce-dialect@2.13.4 (published 2026-06-10)
uses the variantMatch schema-builder API but pins
@sf-agentscript/language@2.5.4 (2026-06-01), which predates that API.
variantMatch first shipped in @sf-agentscript/language@2.8.4 (2026-06-11,
one day after the dialect) — the dialect appears to have been built against
the unreleased workspace version of language and published with a stale exact
pin. Because every @sf-agentscript/* dependency is an exact pin, no fresh
install can resolve a working language.

Fix: republish agentforce-dialect / lsp / lsp-server against
@sf-agentscript/language >= 2.8.4 (current train is 2.19.3).

Environment

  • Node.js version: 22.18.0
  • pnpm version: n/a (reproduced with npm / npx)
  • OS: Windows 11 (also reproduced in the node:22-bookworm container)
  • Package & version: @sf-agentscript/lsp-server 2.2.30 (also @sf-agentscript/lsp 2.3.8)
  • Browser (if applicable): n/a

Minimal Reproduction

The crash happens before any .agent source is read, so no snippet is required —
just running the server reproduces it:

npx --yes @sf-agentscript/lsp-server --stdio

Verified workaround — install with an npm overrides fix, after which the
server initializes and publishes diagnostics normally (verified against
Neovim's LSP client on Node 22):

{
  "dependencies": { "@sf-agentscript/lsp-server": "2.2.30" },
  "overrides": { "@sf-agentscript/language": "2.8.4" }
}

Additional Context

This is the same publish-pipeline defect already reported for a sibling package
in #71 (@sf-agentscript/agentforce unusable for the same reason, different
missing symbol), and the earlier #35 / #40 scope-rewrite incident. The
post-publish import smoke test proposed in #72 would have caught this too.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions