chore: add-lsp-plugin#576
Conversation
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThis PR adds Effect language-service plugin support to the TypeScript compiler and editor toolchain. The tsconfig.base.json is configured with the ChangesEffect language-service integration
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
View your CI Pipeline Execution ↗ for commit c81d8b4
💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗ ☁️ Nx Cloud last updated this comment at |
@forgerock/davinci-client
@forgerock/device-client
@forgerock/journey-client
@forgerock/oidc-client
@forgerock/protect
@forgerock/sdk-types
@forgerock/sdk-utilities
@forgerock/iframe-manager
@forgerock/sdk-logger
@forgerock/sdk-oidc
@forgerock/sdk-request-middleware
@forgerock/storage
commit: |
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ Your project status has failed because the head coverage (21.20%) is below the target coverage (40.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #576 +/- ##
==========================================
+ Coverage 18.07% 21.20% +3.13%
==========================================
Files 155 154 -1
Lines 24398 24838 +440
Branches 1203 1401 +198
==========================================
+ Hits 4410 5268 +858
+ Misses 19988 19570 -418 🚀 New features to boost your workflow:
|
|
Deployed 95c3d26 to https://ForgeRock.github.io/ping-javascript-sdk/pr-576/95c3d26ed89b97ed6d0eb4740163846e28be7889 branch gh-pages in ForgeRock/ping-javascript-sdk |
📦 Bundle Size Analysis📦 Bundle Size Analysis🚨 Significant Changes🔻 @forgerock/device-client - 0.0 KB (-10.0 KB, -100.0%) 📊 Minor Changes📉 @forgerock/device-client - 10.0 KB (-0.0 KB) ➖ No Changes➖ @forgerock/oidc-client - 30.5 KB 14 packages analyzed • Baseline from latest Legend🆕 New package ℹ️ How bundle sizes are calculated
🔄 Updated automatically on each push to this PR |
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (2)
tsconfig.base.json (1)
8-86:⚠️ Potential issue | 🟠 Major | ⚡ Quick winPlugin configuration is inert without
@effect/language-serviceinstalledThe
"name": "@effect/language-service"plugin incompilerOptions.pluginsrequires the@effect/language-servicenpm package. Since only@effect/tsgois installed inpackage.json, TypeScript (both tsserver and ts-patch) will silently fail to load this plugin, rendering the entire block a no-op. See the comment onpackage.jsonfor the package fix.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tsconfig.base.json` around lines 8 - 86, The tsconfig plugin entry "name": "@effect/language-service" in compilerOptions.plugins is inert because the `@effect/language-service` package is not installed; install and add the missing package (or remove/disable the plugin entry) so the plugin actually loads. Update package.json to include "@effect/language-service" (matching the plugin name) and run npm/yarn install, or alternatively remove the plugin object from the "plugins" array in tsconfig.base.json to avoid silent no-op behavior; ensure you reference the "name": "@effect/language-service" plugin entry when making the change.package.json (1)
55-55:⚠️ Potential issue | 🟠 Major | ⚡ Quick win
@effect/tsgoand@effect/language-serviceare distinct packages — the wrong one is installed
@effect/tsgois a TypeScript-Go binary replacement that provides the Effect LSP experience on top of the Go-based TypeScript compiler, whereas@effect/language-serviceis the TypeScript language service plugin package that must be installed directly (npm install@effect/language-service--save-dev) for the traditional tsserver plugin mechanism.
tsconfig.base.jsonreferences"name": "@effect/language-service"incompilerOptions.plugins. TypeScript resolves plugin names as NPM package names, so it will try to load the@effect/language-servicemodule — which is not installed.@effect/tsgodoes not provide a module resolvable under that name via Node.js.Additionally, the TypeScript-Go version of the Effect LSP should be considered in Alpha with breaking changes expected between releases, and it still requires
@typescript/native-previewalongside@effect/tsgo— which is also absent fromdevDependencies.This project uses TypeScript 5.8.3 + ts-patch (not tsgo), so the correct package to add is
@effect/language-service:🔧 Proposed fix
- "@effect/tsgo": "^0.5.1", + "@effect/language-service": "latest",#!/bin/bash # Verify whether `@effect/language-service` or `@effect/tsgo` is resolvable as a TS plugin rg -n "language-service\|tsgo" package.json pnpm-lock.yaml 2>/dev/null | head -40🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@package.json` at line 55, package.json currently installs `@effect/tsgo` but tsconfig expects the plugin "@effect/language-service"; update devDependencies by removing `@effect/tsgo` and adding `@effect/language-service` (install with your package manager), ensure the compilerOptions.plugins entry remains "name": "@effect/language-service", and if you intentionally use the TypeScript-Go LSP add the required `@typescript/native-preview` plus the matching tsgo toolchain—otherwise omit tsgo/native-preview when using ts-patch; after changes run your install command to update lockfiles.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tsconfig.base.json`:
- Around line 74-84: The tsconfig override currently sets
diagnosticSeverity.floatingEffect to "error" for all files matching
"src/**/*.ts", which will cause build failures once `@effect/language-service`
diagnostics are enabled; change the override in the "overrides" block so that
"diagnosticSeverity.floatingEffect" is lowered to "warning" (or restrict the
"include" pattern to a single package) and keep
"ignoreEffectErrorsInTscExitCode" behavior in mind (the flag referenced as
ignoreEffectErrorsInTscExitCode) so the repo-wide tsconfig.base.json does not
immediately escalate unassigned Effect expressions to tsc errors across all
packages.
---
Duplicate comments:
In `@package.json`:
- Line 55: package.json currently installs `@effect/tsgo` but tsconfig expects the
plugin "@effect/language-service"; update devDependencies by removing
`@effect/tsgo` and adding `@effect/language-service` (install with your package
manager), ensure the compilerOptions.plugins entry remains "name":
"@effect/language-service", and if you intentionally use the TypeScript-Go LSP
add the required `@typescript/native-preview` plus the matching tsgo
toolchain—otherwise omit tsgo/native-preview when using ts-patch; after changes
run your install command to update lockfiles.
In `@tsconfig.base.json`:
- Around line 8-86: The tsconfig plugin entry "name": "@effect/language-service"
in compilerOptions.plugins is inert because the `@effect/language-service` package
is not installed; install and add the missing package (or remove/disable the
plugin entry) so the plugin actually loads. Update package.json to include
"@effect/language-service" (matching the plugin name) and run npm/yarn install,
or alternatively remove the plugin object from the "plugins" array in
tsconfig.base.json to avoid silent no-op behavior; ensure you reference the
"name": "@effect/language-service" plugin entry when making the change.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 5e1e9606-0ecf-4e6c-b798-c7fdd93cf55b
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (4)
.gitignore.nxignorepackage.jsontsconfig.base.json
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@package.json`:
- Line 55: The package.json is missing the required companion package
`@typescript/native-preview` required by `@effect/tsgo`; add
"@typescript/native-preview": "<latest-compatible-version>" alongside
"@effect/tsgo" in your dependencies or devDependencies in package.json (near the
existing "@effect/tsgo" entry) and run your package manager to install so the
effect-tsgo language server works correctly.
- Line 55: The package dependency "@effect/tsgo": "^0.5.1" should be pinned to
an exact version to avoid automatic minor/patch upgrades; update the dependency
entry in package.json by replacing the caret semver specifier (e.g., "^0.5.1")
with the exact version string (e.g., "0.5.1") for the "@effect/tsgo" dependency
so the project will not pull in unintended breaking changes from Alpha releases.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: ab829b28-e604-4a01-b486-d2e243d87370
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (3)
.nxignorepackage.jsontsconfig.base.json
✅ Files skipped from review due to trivial changes (1)
- tsconfig.base.json
| "@commitlint/config-conventional": "^20.0.0", | ||
| "@commitlint/prompt": "^20.0.0", | ||
| "@effect/cli": "catalog:effect", | ||
| "@effect/tsgo": "^0.5.1", |
There was a problem hiding this comment.
Missing required companion package @typescript/native-preview.
The @effect/tsgo docs state: "At the moment, you still need the standard native TypeScript install (@typescript/native-preview) alongside @effect/tsgo." Without it, developers configuring their editor to use effect-tsgo as the language server may encounter failures.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@package.json` at line 55, The package.json is missing the required companion
package `@typescript/native-preview` required by `@effect/tsgo`; add
"@typescript/native-preview": "<latest-compatible-version>" alongside
"@effect/tsgo" in your dependencies or devDependencies in package.json (near the
existing "@effect/tsgo" entry) and run your package manager to install so the
effect-tsgo language server works correctly.
🧩 Analysis chain
🌐 Web query:
What is the latest stable version of @effect/tsgo on npm? Is 0.5.1 still current?
💡 Result:
Latest stable version of @effect/tsgo on npm: 0.5.1 (i.e., 0.5.1 is the most recent released patch listed for the @effect/tsgo package in the project’s changelog) [1]. Is 0.5.1 still current as of 2026-05-05? Yes—there’s an explicit 0.5.1 entry in the @effect/tsgo changelog [1], and the repository’s recent release automation shows version packaging activity around later dates without contradicting 0.5.1 being the latest for the root @effect/tsgo package [2][3]. Note: @effect/tsgo is described by the project as “currently in Alpha,” so “stable” here refers to the latest published release number, not to a non-alpha maturity level [4].
Citations:
- 1: https://github.com/Effect-TS/tsgo/blob/main/_packages/tsgo/CHANGELOG.md
- 2: Version Packages Effect-TS/tsgo#82
- 3: Effect-TS/tsgo@74812ef
- 4: https://effect-ts-tsgo.mintlify.app/
🏁 Script executed:
# Check if `@typescript/native-preview` is in package.json
rg "@typescript/native-preview" package.jsonRepository: ForgeRock/ping-javascript-sdk
Length of output: 55
🏁 Script executed:
# List all dependencies and devDependencies in package.json to verify `@effect/tsgo` context
cat -n package.json | sed -n '40,70p'Repository: ForgeRock/ping-javascript-sdk
Length of output: 1203
Pin @effect/tsgo to an exact version — it's explicitly Alpha.
@effect/tsgo is in Alpha and the upstream project warns to expect breaking changes between releases. Using ^0.5.1 allows automatic minor bumps that can silently break the plugin configuration committed in tsconfig.base.json.
Pin to the exact version to prevent uncontrolled upgrades:
📌 Proposed fix
- "@effect/tsgo": "^0.5.1",
+ "@effect/tsgo": "0.5.1",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "@effect/tsgo": "^0.5.1", | |
| "@effect/tsgo": "0.5.1", |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@package.json` at line 55, The package dependency "@effect/tsgo": "^0.5.1"
should be pinned to an exact version to avoid automatic minor/patch upgrades;
update the dependency entry in package.json by replacing the caret semver
specifier (e.g., "^0.5.1") with the exact version string (e.g., "0.5.1") for the
"@effect/tsgo" dependency so the project will not pull in unintended breaking
changes from Alpha releases.
There was a problem hiding this comment.
@ryanbas21 The docs do mention that you need to install @typescript/native-preview alongside. Regarding the version pinning, might be a good idea to avoid breaking changes for now but nbd.
There was a problem hiding this comment.
Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!
There was a problem hiding this comment.
I suppose we can do this, but i'm not sure the affects on a workspace. You can install tsgo on your system or just use regular typescript before tsgo. the language service should work either way
There was a problem hiding this comment.
Did you mean to switch from tsgo to language-service?
46e78fa to
66a60c5
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tsconfig.base.json`:
- Around line 15-16: Replace the unrecognized compiler option key
"includeSuggestionsInTsc" with the correct `@effect/language-service` option name
"ignoreEffectSuggestionsInTscExitCode" in the tsconfig JSON so the plugin reads
the setting; locate the existing "includeSuggestionsInTsc" entry and rename it
to "ignoreEffectSuggestionsInTscExitCode" preserving the boolean value (true).
- Around line 8-10: Root tsconfig.base.json references the TypeScript plugin
"@effect/language-service" but that package is not declared in the root
package.json; add "@effect/language-service" to the root package.json
devDependencies (matching the version you want for the workspace, for example
the same major as "@effect/tsgo"), run your package manager to install/update
the lockfile, and ensure the plugin name in tsconfig.base.json
("@effect/language-service") remains unchanged so the TypeScript language
service can be resolved for all workspace packages.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 99dcfc02-71b4-4747-8dcc-ab9aac2a9a14
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (3)
.nxignorepackage.jsontsconfig.base.json
🚧 Files skipped from review as they are similar to previous changes (1)
- package.json
There was a problem hiding this comment.
Can we remove the comments from this json? Looks like it's causing syntax errors
There was a problem hiding this comment.
it shouldn't cause errors, i probably use jsonc. where are the errors?
There was a problem hiding this comment.
Maybe it was just a syntax highlighting thing in github
There was a problem hiding this comment.
Nx Cloud has identified a flaky task in your failed CI:
🔂 Since the failure was identified as flaky, we triggered a CI rerun by adding an empty commit to this branch.
🎓 Learn more about Self-Healing CI on nx.dev
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
package.json (1)
16-113:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winVerify PR scope — multiple unrelated changes detected.
This PR is titled "add-lsp-plugin" and the description states it adds LSP Plugin, but the diff shows changes to multiple scripts and dependencies that appear unrelated to LSP functionality (e.g.,
api-report,mapping,syncpack,lefthook,@types/express,@vitest/coverage-v8,tslib,tsx). Only lines 57-58 (@effect/language-serviceand@effect/tsgo) clearly relate to the stated objective.Confirm whether these additional changes:
- Are merge artifacts from the target branch, or
- Should be split into separate PRs for clearer history and easier review.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@package.json` around lines 16 - 113, The PR titled "add-lsp-plugin" contains unrelated script and dependency changes; confirm intended scope and either remove/revert unrelated edits from this branch or split them into separate PRs: specifically review and keep only the LSP-related changes (devDependencies `@effect/language-service` and `@effect/tsgo` and any LSP-related additions), and revert or move edits to scripts (npm scripts like "api-report", "mapping:generate", "syncpack:lint", "syncpack:fix", "prepare" (lefthook), etc.) and devDependencies (`@types/express`, `@vitest/coverage-v8`, tslib, tsx, and other non-LSP entries) into their own focused PRs or update via a rebase/merge from target branch to remove merge artifacts before reopening this PR.
♻️ Duplicate comments (1)
package.json (1)
58-58:⚠️ Potential issue | 🟠 Major | ⚖️ Poor tradeoffPin
@effect/tsgoto exact version (duplicate concern).The version
^0.5.1still uses a caret range, allowing automatic minor version updates. As previously flagged,@effect/tsgois Alpha and the upstream project warns of breaking changes between releases. Using^risks silent breakage of the plugin configuration intsconfig.base.jsonduringpnpm install.📌 Proposed fix
- "`@effect/tsgo`": "^0.5.1", + "`@effect/tsgo`": "0.5.1",🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@package.json` at line 58, Update the dependency entry for "`@effect/tsgo`" in package.json to pin to an exact version instead of a caret range (change "^0.5.1" to "0.5.1"), then run your package manager to update the lockfile (e.g., pnpm install) so installs are reproducible; this ensures the plugin won't receive unintended minor/patch updates that could break tsconfig.base.json behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@package.json`:
- Line 58: The dependency entry "`@effect/tsgo`" in package.json appears unused;
either remove the "`@effect/tsgo`" devDependency from package.json or add a clear
justification and usage (e.g., reference in a postinstall or build script or
documentation) showing where tsgo is invoked; update package.json's
devDependencies accordingly and, if kept, add a comment in README or a
package.json script that demonstrates the use so reviewers can verify why
"`@effect/tsgo`" is required.
---
Outside diff comments:
In `@package.json`:
- Around line 16-113: The PR titled "add-lsp-plugin" contains unrelated script
and dependency changes; confirm intended scope and either remove/revert
unrelated edits from this branch or split them into separate PRs: specifically
review and keep only the LSP-related changes (devDependencies
`@effect/language-service` and `@effect/tsgo` and any LSP-related additions), and
revert or move edits to scripts (npm scripts like "api-report",
"mapping:generate", "syncpack:lint", "syncpack:fix", "prepare" (lefthook), etc.)
and devDependencies (`@types/express`, `@vitest/coverage-v8`, tslib, tsx, and other
non-LSP entries) into their own focused PRs or update via a rebase/merge from
target branch to remove merge artifacts before reopening this PR.
---
Duplicate comments:
In `@package.json`:
- Line 58: Update the dependency entry for "`@effect/tsgo`" in package.json to pin
to an exact version instead of a caret range (change "^0.5.1" to "0.5.1"), then
run your package manager to update the lockfile (e.g., pnpm install) so installs
are reproducible; this ensures the plugin won't receive unintended minor/patch
updates that could break tsconfig.base.json behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: c1fb3ec5-29d9-497f-9bf4-521342421dd2
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (2)
package.jsontsconfig.base.json
🚧 Files skipped from review as they are similar to previous changes (1)
- tsconfig.base.json
| "@commitlint/prompt": "^20.0.0", | ||
| "@effect/cli": "catalog:effect", | ||
| "@effect/language-service": "catalog:effect", | ||
| "@effect/tsgo": "^0.5.1", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Search for any references to tsgo in the codebase
echo "=== Searching for tsgo usage in config files ==="
rg -n -C3 --type-add 'config:*.{json,js,ts,yaml,yml}' --type config 'tsgo|effect-tsgo'
echo "=== Searching for tsgo imports or requires ==="
rg -n -C3 --type ts --type js 'from.*tsgo|require.*tsgo'
echo "=== Checking if `@effect/language-service` requires tsgo as peer ==="
fd -e json package.json packages node_modules/@effect/language-service --exec cat {} \; | grep -A5 -B5 'peerDep\|tsgo'Repository: ForgeRock/ping-javascript-sdk
Length of output: 4985
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== Locate `@effect/language-service` block(s) in pnpm-lock.yaml ==="
rg -n "('`@effect/language-service`@|`@effect/language-service`:) " pnpm-lock.yaml || true
echo
echo "=== Search for tsgo references near `@effect/language-service` ==="
# Grab a wider window around any language-service-related lines and see if tsgo appears nearby
rg -n -C20 "`@effect/language-service`" pnpm-lock.yaml | rg -n "tsgo|language-service" || true
echo
echo "=== Directly search if pnpm-lock.yaml links language-service -> tsgo ==="
rg -n -C5 "language-service" pnpm-lock.yaml | rg -n "tsgo" || trueRepository: ForgeRock/ping-javascript-sdk
Length of output: 635
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== Exact line numbers for `@effect/language-service`@0.35.2 ==="
rg -n "`@effect/language-service`@0.35.2" pnpm-lock.yaml || true
echo
echo "=== Snippet near top reference to `@effect/language-service` and `@effect/tsgo` (lines 40-120) ==="
nl -ba pnpm-lock.yaml | sed -n '40,130p'
echo
echo "=== Snippet around package entry `@effect/language-service`@0.35.2 (±80 lines) ==="
# Find the first occurrence line number, then print around it
line=$(rg -n "`@effect/language-service`@0.35.2" pnpm-lock.yaml | head -n1 | cut -d: -f1)
echo "Using line: $line"
nl -ba pnpm-lock.yaml | sed -n "$((line-80)),$((line+80))p"
echo
echo "=== Snippet near any `@effect/tsgo` mention near language-service (±40 lines for each match of language-service) ==="
# For each language-service match, show a small window and filter mentally
for l in $(rg -n "`@effect/language-service`" pnpm-lock.yaml | head -n20 | cut -d: -f1); do
echo "--- around line $l ---"
nl -ba pnpm-lock.yaml | sed -n "$((l-20)),$((l+20))p"
doneRepository: ForgeRock/ping-javascript-sdk
Length of output: 380
🏁 Script executed:
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
import re, itertools
path="pnpm-lock.yaml"
with open(path,"r",encoding="utf-8") as f:
lines=f.readlines()
def find_block(start_pat, next_pat=r"^ '@"):
# find first line index containing start_pat
for i,l in enumerate(lines):
if start_pat in l:
start=i
break
else:
print(f"START PAT NOT FOUND: {start_pat}")
return
# find next block start after start
for j in range(start+1, len(lines)):
if re.match(next_pat, lines[j]):
end=j
break
else:
end=len(lines)
print(f"--- Block for {start_pat!r}: lines {start+1}-{end} ---")
# print block with line numbers
for k in range(start, min(end, start+220)): # cap
print(f"{k+1:6d}: {lines[k].rstrip()}")
print(f"--- End (or capped) ---")
# summarize tsgo presence
block_text="".join(lines[start:end])
m=re.search(r"`@effect/tsgo`", block_text)
print("Contains '`@effect/tsgo`' within block:", bool(m))
if m:
# print matching lines
for k in range(start, end):
if "`@effect/tsgo`" in lines[k]:
print(f" hit at line {k+1}: {lines[k].rstrip()}")
# There may be multiple occurrences (e.g. snapshot/metadata). Extract both.
find_block("`@effect/language-service`@0.35.2")
# Also extract any empty {} occurrence by extracting around it by searching for the literal line.
for i,l in enumerate(lines):
if l.strip()=="'`@effect/language-service`@0.35.2': {}" or "`@effect/language-service`@0.35.2': {}" in l:
# print small window
start=max(i-5,0); end=min(i+25,len(lines))
print(f"\n--- Empty/other block occurrence around line {i+1} ---")
for k in range(start,end):
print(f"{k+1:6d}: {lines[k].rstrip()}")
break
PYRepository: ForgeRock/ping-javascript-sdk
Length of output: 3689
🏁 Script executed:
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
path="pnpm-lock.yaml"
with open(path,"r",encoding="utf-8") as f:
lines=f.readlines()
def dump(start, end):
for i in range(start, min(end, len(lines))):
print(f"{i+1:6d}: {lines[i].rstrip()}")
# Early part near the reported matches
print("=== Dump pnpm-lock.yaml lines 1-140 ===")
dump(0, 140)
# Also dump around the line where language-service block starts (1537)
print("\n=== Dump pnpm-lock.yaml lines 1500-1600 ===")
dump(1500, 1600)
PYRepository: ForgeRock/ping-javascript-sdk
Length of output: 14451
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== Repo-wide search for literal tsgo/ effect-tsgo ==="
rg -n "tsgo|effect-tsgo" .
echo
echo "=== Inspect package.json scripts section ==="
cat package.json | sed -n '1,120p'Repository: ForgeRock/ping-javascript-sdk
Length of output: 6643
Remove or justify @effect/tsgo if it isn’t required by your tooling.
- Repo has no
tsgo/effect-tsgoimports or script invocations (package.jsononly runsts-patch installinpostinstall). pnpm-lock.yamlshows@effect/language-service@0.35.2has nodependencies/peerDependencieson@effect/tsgo, while@effect/tsgo@0.5.1is only present as a top-level devDependency.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@package.json` at line 58, The dependency entry "`@effect/tsgo`" in package.json
appears unused; either remove the "`@effect/tsgo`" devDependency from package.json
or add a clear justification and usage (e.g., reference in a postinstall or
build script or documentation) showing where tsgo is invoked; update
package.json's devDependencies accordingly and, if kept, add a comment in README
or a package.json script that demonstrates the use so reviewers can verify why
"`@effect/tsgo`" is required.
JIRA Ticket
N/A
Description
Add LSP Plugin.
Summary by CodeRabbit