Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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

Open
#73 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
52/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
node.js, typescript
Domain
devtools, tooling

Research direction

Start with the dependency declarations for @sf-agentscript/agentforce-dialect, @sf-agentscript/lsp, and @sf-agentscript/lsp-server, then review the post-publish import smoke test proposed in #72. Reproduce with npx --yes @sf-agentscript/lsp-server --stdio and verify that a fresh install completes the LSP initialize handshake and publishes diagnostics.

Written by the indexing model from the issue text.

Description

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.

Dominant language
TypeScript
Stars
267
Forks
54
Avg merge
48m
Merged PRs (30d)
1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from salesforce/agentscript

All issues in salesforce/agentscript

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.