salesforce / salesforce/agentscript
[bug]: @sf-agentscript/lsp-server@2.2.30 crashes at startup — variantMatch is not a function (stale @sf-agentscript/language pin)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 267
- Forks
- 54
- Avg merge
- 48m
- Merged PRs (30d)
- 1
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
npx --yes @sf-agentscript/lsp-server --stdio
(ornpm install -g @sf-agentscript/lsp-serverand runagentscript-lsp --stdio)- 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-bookwormcontainer) - Package & version:
@sf-agentscript/lsp-server2.2.30 (also@sf-agentscript/lsp2.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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
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.
Assessment
- Tech stack
- node.js, typescript
- Domain
- devtools, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 52/100