@gesslar/lpc-mcp 0.1.4 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,192 @@
1
+ name: CodeQL, Linting, Testing
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [main]
7
+ pull_request:
8
+ branches: [main]
9
+ schedule:
10
+ - cron: "20 14 * * 1"
11
+
12
+ jobs:
13
+ ConfigureWorkflow:
14
+ runs-on: ubuntu-latest
15
+ permissions: {}
16
+ outputs:
17
+ perform_testing: ${{ steps.cfg.outputs.perform_testing }}
18
+ perform_linting: ${{ steps.cfg.outputs.perform_linting }}
19
+ package_manager: ${{ steps.cfg.outputs.package_manager }}
20
+ pm_install_cmd: ${{ steps.cfg.outputs.pm_install_cmd }}
21
+
22
+ steps:
23
+ - name: Configure workflow
24
+ id: cfg
25
+ run: |+
26
+ ### PACKAGE MANAGER #################################################
27
+ #
28
+ # Set the package manager to use: 'npm' or 'pnpm'
29
+ # This will configure the appropriate setup and commands throughout
30
+ # the workflow.
31
+
32
+ PACKAGE_MANAGER="pnpm"
33
+ echo "package_manager=${PACKAGE_MANAGER}" >> "$GITHUB_OUTPUT"
34
+
35
+ # Set package manager specific commands and versions
36
+ if [ "$PACKAGE_MANAGER" = "pnpm" ]; then
37
+ echo "pm_install_cmd=pnpm install --frozen-lockfile" >> "$GITHUB_OUTPUT"
38
+ else
39
+ echo "pm_install_cmd=npm ci" >> "$GITHUB_OUTPUT"
40
+ fi
41
+
42
+ ### LINTING #########################################################
43
+ #
44
+ # If we need to perform linting, set the value to 'yes'. Any other
45
+ # value will skip linting.
46
+
47
+ echo "perform_linting=yes" >> "$GITHUB_OUTPUT"
48
+
49
+ ### TESTING #########################################################
50
+ #
51
+ # If we need to perform testing, set the value to 'yes'. Any other
52
+ # value will skip testing.
53
+
54
+ echo "perform_testing=no" >> "$GITHUB_OUTPUT"
55
+
56
+ Lint:
57
+ needs: ConfigureWorkflow
58
+ runs-on: ubuntu-latest
59
+
60
+ permissions:
61
+ contents: read
62
+
63
+ strategy:
64
+ matrix:
65
+ node-version: [22.x]
66
+
67
+ steps:
68
+ - name: Check out repository
69
+ if: ${{ needs.ConfigureWorkflow.outputs.perform_linting == 'yes' }}
70
+ uses: actions/checkout@v6
71
+
72
+ - name: Install pnpm
73
+ if: ${{ needs.ConfigureWorkflow.outputs.perform_linting == 'yes' && needs.ConfigureWorkflow.outputs.package_manager == 'pnpm' }}
74
+ uses: pnpm/action-setup@v4
75
+
76
+ - name: Using Node v${{ matrix.node-version }}
77
+ if: ${{ needs.ConfigureWorkflow.outputs.perform_linting == 'yes' }}
78
+ uses: actions/setup-node@v6
79
+ with:
80
+ node-version: ${{ matrix.node-version }}
81
+ cache: ${{ needs.ConfigureWorkflow.outputs.package_manager }}
82
+
83
+ - name: Install dependencies
84
+ if: ${{ needs.ConfigureWorkflow.outputs.perform_linting == 'yes' }}
85
+ run: ${{ needs.ConfigureWorkflow.outputs.pm_install_cmd }}
86
+
87
+ - name: Perform lint check
88
+ if: ${{ needs.ConfigureWorkflow.outputs.perform_linting == 'yes' }}
89
+ run: ${{ needs.ConfigureWorkflow.outputs.package_manager }} run lint
90
+
91
+ Test:
92
+ needs: ConfigureWorkflow
93
+ runs-on: ubuntu-latest
94
+
95
+ permissions:
96
+ contents: read
97
+
98
+ strategy:
99
+ matrix:
100
+ node-version: [22.x]
101
+
102
+ steps:
103
+ - name: Check out repository
104
+ if: ${{ needs.ConfigureWorkflow.outputs.perform_testing == 'yes' }}
105
+ uses: actions/checkout@v6
106
+
107
+ - name: Install pnpm
108
+ if: ${{ needs.ConfigureWorkflow.outputs.perform_testing == 'yes' && needs.ConfigureWorkflow.outputs.package_manager == 'pnpm' }}
109
+ uses: pnpm/action-setup@v4
110
+
111
+ - name: Using Node v${{ matrix.node-version }}
112
+ if: ${{ needs.ConfigureWorkflow.outputs.perform_testing == 'yes' }}
113
+ uses: actions/setup-node@v6
114
+ with:
115
+ node-version: ${{ matrix.node-version }}
116
+ cache: ${{ needs.ConfigureWorkflow.outputs.package_manager }}
117
+
118
+ - name: Install dependencies
119
+ if: ${{ needs.ConfigureWorkflow.outputs.perform_testing == 'yes' }}
120
+ run: ${{ needs.ConfigureWorkflow.outputs.pm_install_cmd }}
121
+
122
+ - name: Definitely don't cheat on tests
123
+ if: ${{ needs.ConfigureWorkflow.outputs.perform_testing == 'yes' }}
124
+ run: ${{ needs.ConfigureWorkflow.outputs.package_manager }} test
125
+
126
+ Analyze:
127
+ name: Analyze (${{ matrix.language }})
128
+ needs: ["Lint", "Test"]
129
+ runs-on: ubuntu-latest
130
+ permissions:
131
+ # required for all workflows
132
+ security-events: write
133
+
134
+ # required to fetch internal or private CodeQL packs
135
+ packages: read
136
+
137
+ # only required for workflows in private repositories
138
+ actions: read
139
+ contents: read
140
+
141
+ strategy:
142
+ fail-fast: false
143
+ matrix:
144
+ include:
145
+ - language: actions
146
+ build-mode: none
147
+ - language: javascript-typescript
148
+ build-mode: none
149
+ steps:
150
+ - name: Checkout repository
151
+ uses: actions/checkout@v4
152
+
153
+ # Add any setup steps before running the `github/codeql-action/init` action.
154
+ # This includes steps like installing compilers or runtimes (`actions/setup-node`
155
+ # or others). This is typically only required for manual builds.
156
+ # - name: Setup runtime (example)
157
+ # uses: actions/setup-example@v1
158
+
159
+ # Initializes the CodeQL tools for scanning.
160
+ - name: Initialize CodeQL
161
+ uses: github/codeql-action/init@v4
162
+ with:
163
+ languages: ${{ matrix.language }}
164
+ build-mode: ${{ matrix.build-mode }}
165
+ # If you wish to specify custom queries, you can do so here or in a config file.
166
+ # By default, queries listed here will override any specified in a config file.
167
+ # Prefix the list here with "+" to use these queries and those in the config file.
168
+
169
+ # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-[...]
170
+ # queries: security-extended,security-and-quality
171
+
172
+ # If the analyze step fails for one of the languages you are analyzing with
173
+ # "We were unable to automatically build your code", modify the matrix above
174
+ # to set the build mode to "manual" for that language. Then modify this step
175
+ # to build your code.
176
+ # ℹ️ Command-line programs to run using the OS shell.
177
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
178
+ - name: Run manual build steps
179
+ if: matrix.build-mode == 'manual'
180
+ shell: bash
181
+ run: |
182
+ echo 'If you are using a "manual" build mode for one or more of the' \
183
+ 'languages you are analyzing, replace this with the commands to build' \
184
+ 'your code, for example:'
185
+ echo ' make bootstrap'
186
+ echo ' make release'
187
+ exit 1
188
+
189
+ - name: Perform CodeQL Analysis
190
+ uses: github/codeql-action/analyze@v4
191
+ with:
192
+ category: "/language:${{matrix.language}}"
@@ -0,0 +1,214 @@
1
+ name: Release
2
+
3
+ permissions:
4
+ contents: read
5
+
6
+ on:
7
+ pull_request:
8
+ types:
9
+ - closed
10
+ branches:
11
+ - main
12
+
13
+ jobs:
14
+ ConfigureWorkflow:
15
+ runs-on: ubuntu-latest
16
+
17
+ outputs:
18
+ quality_check: ${{ steps.cfg.outputs.quality_check }}
19
+
20
+ steps:
21
+ - name: Configure workflow
22
+ id: cfg
23
+ run: |+
24
+ # If we need to wait for a workflow to have completed before
25
+ # we get here, name the workflow here so that it is checked
26
+ # against later. Or just leave empty, implicitly telling this
27
+ # workflow not to wait, just keep swimming.
28
+
29
+ echo "quality_check='CodeQL, Linting, Testing'" >> "$GITHUB_OUTPUT"
30
+
31
+ WaitForQuality:
32
+ needs: ConfigureWorkflow
33
+ runs-on: ubuntu-latest
34
+ if: ${{ github.event.pull_request.merged == true }}
35
+
36
+ steps:
37
+ - name: Wait for Quality workflow to complete
38
+ if: ${{ needs.ConfigureWorkflow.outputs.quality_check != '' }}
39
+ uses: lewagon/wait-on-check-action@v1.3.4
40
+ with:
41
+ ref: ${{ github.ref }}
42
+ running-workflow-name: ${{ needs.ConfigureWorkflow.outputs.quality_check }}
43
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
44
+ wait-interval: 10
45
+
46
+ - name: Skipping wait (no quality_check configured)
47
+ if: ${{ needs.ConfigureWorkflow.outputs.quality_check == '' }}
48
+ run: echo "No quality check configured; continuing."
49
+
50
+ DetermineVersion:
51
+ needs: WaitForQuality
52
+ runs-on: ubuntu-latest
53
+ if: ${{ github.event.pull_request.merged == true }}
54
+
55
+ outputs:
56
+ version: ${{ steps.version.outputs.VERSION }}
57
+
58
+ steps:
59
+ - uses: actions/checkout@v4
60
+ with:
61
+ fetch-depth: 0
62
+
63
+ - name: Determine version
64
+ id: check_version
65
+ uses: gesslar/new-version-questionmark@v1.5.5
66
+ with:
67
+ source: package.json
68
+ version_pattern: "^v\\d+\\.\\d+\\.\\d+$"
69
+
70
+ - name: Show result
71
+ id: version
72
+ run: |+
73
+ UPDATED_VERSION="${{ steps.check_version.outputs.updated_version }}"
74
+
75
+ if [[ "$UPDATED_VERSION" == "no changes" ]]; then
76
+ echo "VERSION=🙅🏻‍♂️" >> "$GITHUB_OUTPUT"
77
+ else
78
+ echo "VERSION=${UPDATED_VERSION}" >> "$GITHUB_OUTPUT"
79
+ fi
80
+
81
+ CreateTag:
82
+ needs: DetermineVersion
83
+ if: ${{ needs.DetermineVersion.outputs.version != '🙅🏻‍♂️' }}
84
+ runs-on: ubuntu-latest
85
+
86
+ permissions:
87
+ contents: write
88
+
89
+ env:
90
+ GIT_USER_NAME: "github-actions"
91
+ GIT_USER_EMAIL: "github-actions@github.com"
92
+
93
+ outputs:
94
+ new_tag: ${{ steps.check_tag.outputs.new_tag }}
95
+
96
+ steps:
97
+ - name: Checkout code
98
+ uses: actions/checkout@v6
99
+
100
+ - name: Setup Git Variables
101
+ run: |+
102
+ echo "GIT_USER_NAME=${GIT_USER_NAME}" >> $GITHUB_ENV
103
+ echo "GIT_USER_EMAIL=${GIT_USER_EMAIL}" >> $GITHUB_ENV
104
+ git config user.name "${GIT_USER_NAME}"
105
+ git config user.email "${GIT_USER_EMAIL}"
106
+
107
+ - name: Set up Node.js
108
+ uses: actions/setup-node@v6
109
+ with:
110
+ node-version: "22"
111
+
112
+ - name: Install dependencies
113
+ run: npm install
114
+
115
+ - name: Read version from package.json
116
+ id: get_version
117
+ run: |
118
+ CURRENT_VERSION=${{ needs.DetermineVersion.outputs.version }}
119
+
120
+ - name: Fetch all tags
121
+ run: git fetch --tags
122
+
123
+ - name: Check for existing tag and create if it does not exist
124
+ id: check_tag
125
+ run: |+
126
+ CURRENT_VERSION="${{ needs.DetermineVersion.outputs.version }}"
127
+ TAG_EXISTS=$(git tag -l "v${CURRENT_VERSION}")
128
+
129
+ echo "Value of TAG_EXISTS: $TAG_EXISTS"
130
+
131
+ if [ -z "$TAG_EXISTS" ]; then
132
+ echo "Tag does not exist for version v${CURRENT_VERSION}. Creating tag."
133
+ git tag "v${CURRENT_VERSION}"
134
+ git push origin "v${CURRENT_VERSION}"
135
+ echo "new_tag=v${CURRENT_VERSION}" >> $GITHUB_OUTPUT
136
+ else
137
+ echo "Tag already exists for version v${CURRENT_VERSION}. Skipping tag creation."
138
+ echo "new_tag=🙅🏻‍♂️" >> $GITHUB_OUTPUT
139
+ exit 0
140
+ fi
141
+
142
+ PrepareGitHubRelease:
143
+ needs: CreateTag
144
+ runs-on: ubuntu-latest
145
+ if: ${{ needs.CreateTag.outputs.new_tag != '🙅🏻‍♂️' }}
146
+
147
+ permissions:
148
+ contents: write
149
+
150
+ env:
151
+ NEW_TAG: ${{ needs.CreateTag.outputs.new_tag }}
152
+ GIT_USER_NAME: "github-actions"
153
+ GIT_USER_EMAIL: "github-actions@github.com"
154
+
155
+ steps:
156
+ - name: Setup New Tag
157
+ run: |
158
+ echo "NEW_TAG=${NEW_TAG}" >> $GITHUB_ENV
159
+
160
+ - name: Checkout code
161
+ uses: actions/checkout@v6
162
+
163
+ - name: Setup Git Variables
164
+ run: |
165
+ echo "GIT_USER_NAME=${GIT_USER_NAME}" >> $GITHUB_ENV
166
+ echo "GIT_USER_EMAIL=${GIT_USER_EMAIL}" >> $GITHUB_ENV
167
+ git config user.name "${GIT_USER_NAME}"
168
+ git config user.email "${GIT_USER_EMAIL}"
169
+
170
+ - name: Set up Node.js
171
+ uses: actions/setup-node@v6
172
+ with:
173
+ node-version: "22"
174
+
175
+ - name: Install dependencies
176
+ run: npm install
177
+
178
+ - name: Build artefact
179
+ run: |
180
+ ARTEFACT=$(npm pack 2>/dev/null | tail -1)
181
+ echo "ARTEFACT=${ARTEFACT}" >> $GITHUB_ENV
182
+
183
+ - name: Create Release
184
+ uses: ncipollo/release-action@v1
185
+ with:
186
+ tag: ${{ env.NEW_TAG }}
187
+ name: Release ${{ env.NEW_TAG }}
188
+ draft: false
189
+ prerelease: false
190
+ artifacts: ${{ env.ARTEFACT }}
191
+ generateReleaseNotes: true
192
+
193
+ PublishToNPM:
194
+ needs: DetermineVersion
195
+ if: ${{ github.event.pull_request.merged == true && needs.DetermineVersion.outputs.version != '🙅🏻‍♂️' }}
196
+ runs-on: ubuntu-latest
197
+
198
+ permissions:
199
+ contents: write
200
+ env:
201
+ TOKEN: ${{ secrets.NPM_GITHUB_CD_ACCESS_TOKEN }}
202
+
203
+ steps:
204
+ - name: Checkout code
205
+ uses: actions/checkout@v6
206
+
207
+ - name: Set up Node.js
208
+ uses: actions/setup-node@v6
209
+ with:
210
+ node-version: "22"
211
+
212
+ - name: Ship it
213
+ run: |
214
+ npm publish --access public --//registry.npmjs.org/:_authToken=${TOKEN}
package/README.md CHANGED
@@ -30,10 +30,10 @@ All through conversation, powered by actual code intelligence instead of pattern
30
30
 
31
31
  ### 1. Install Node.js
32
32
 
33
- Node.js 16+ required:
33
+ Node.js 20+ required:
34
34
 
35
35
  ```bash
36
- node --version # Should be v16.0.0 or higher
36
+ node --version # Should be v20.0.0 or higher
37
37
  ```
38
38
 
39
39
  ### 2. Install the LPC Language Server Extension
package/eslint.config.js CHANGED
@@ -1,167 +1,11 @@
1
- import js from "@eslint/js"
2
- import jsdoc from "eslint-plugin-jsdoc"
3
- import stylistic from "@stylistic/eslint-plugin"
4
- import globals from "globals"
1
+ import uglify from "@gesslar/uglier"
5
2
 
6
3
  export default [
7
- js.configs.recommended,
8
- jsdoc.configs['flat/recommended'], {
9
- name: "gesslar/uglier/ignores",
10
- ignores: [],
11
- }, {
12
- name: "gesslar/uglier/languageOptions",
13
- languageOptions: {
14
- ecmaVersion: "latest",
15
- sourceType: "module",
16
- globals: {
17
- ...globals.node,
18
- fetch: "readonly",
19
- Headers: "readonly",
20
- },
21
- },
22
- },
23
- // Add override for webview files to include browser globals
24
- {
25
- name: "gesslar/uglier/webview-env",
26
- files: ["src/webview/**/*.{js,mjs,cjs}"],
27
- languageOptions: {
28
- globals: {
29
- ...globals.browser,
30
- acquireVsCodeApi: "readonly"
31
- }
32
- }
33
- },
34
- // Add override for .cjs files to treat as CommonJS
35
- {
36
- name: "gesslar/uglier/cjs-override",
37
- files: ["src/**/*.cjs"],
38
- languageOptions: {
39
- sourceType: "script",
40
- ecmaVersion: 2021
41
- },
42
- },
43
- // Add override for .mjs files to treat as ES modules
44
- {
45
- name: "gesslar/uglier/mjs-override",
46
- files: ["src/**/*.mjs"],
47
- languageOptions: {
48
- sourceType: "module",
49
- ecmaVersion: 2021
50
- }
51
- },
52
- {
53
- name: "gesslar/uglier/lints-js",
54
- files: ["{work,src}/**/*.{mjs,cjs,js}"],
55
- plugins: {
56
- "@stylistic": stylistic,
57
- },
58
- rules: {
59
- "@stylistic/arrow-parens": ["error", "as-needed"],
60
- "@stylistic/arrow-spacing": ["error", { before: true, after: true }],
61
- "@stylistic/brace-style": ["error", "1tbs", {allowSingleLine: false}],
62
- "@stylistic/nonblock-statement-body-position": ["error", "below"],
63
- "@stylistic/padding-line-between-statements": [
64
- "error",
65
- {blankLine: "always", prev: "if", next: "*"},
66
- {blankLine: "always", prev: "*", next: "return"},
67
- {blankLine: "always", prev: "while", next: "*"},
68
- {blankLine: "always", prev: "for", next: "*"},
69
- {blankLine: "always", prev: "switch", next: "*"},
70
- {blankLine: "always", prev: "do", next: "*"},
71
- // {blankLine: "always", prev: ["const", "let", "var"], next: "*"},
72
- // {blankLine: "any", prev: ["const", "let", "var"], next: ["const", "let", "var"]},
73
- {blankLine: "always", prev: "directive", next: "*" },
74
- {blankLine: "any", prev: "directive", next: "directive" },
75
- ],
76
- "@stylistic/eol-last": ["error", "always"],
77
- "@stylistic/indent": ["error", 2, {
78
- SwitchCase: 1 // Indents `case` statements one level deeper than `switch`
79
- }],
80
- "@stylistic/key-spacing": ["error", { beforeColon: false, afterColon: true }],
81
- "@stylistic/keyword-spacing": ["error", {
82
- before: false,
83
- after: true,
84
- overrides: {
85
- // Control statements
86
- return: { before: true, after: true },
87
- if: { after: false },
88
- else: { before: true, after: true },
89
- for: { after: false },
90
- while: { before: true, after: false },
91
- do: { after: true },
92
- switch: { after: false },
93
- case: { before: true, after: true },
94
- throw: { before: true, after: false } ,
95
-
96
- // Keywords
97
- as: { before: true, after: true },
98
- of: { before: true, after: true },
99
- from: { before: true, after: true },
100
- async: { before: true, after: true },
101
- await: { before: true, after: false },
102
- class: { before: true, after: true },
103
- const: { before: true, after: true },
104
- let: { before: true, after: true },
105
- var: { before: true, after: true },
106
-
107
- // Exception handling
108
- catch: { before: true, after: true },
109
- finally: { before: true, after: true },
110
- }
111
- }],
112
- // Blocks
113
- "@stylistic/space-before-blocks": ["error", "always"],
114
- "@stylistic/max-len": ["warn", {
115
- code: 80,
116
- ignoreComments: true,
117
- ignoreUrls: true,
118
- ignoreStrings: true,
119
- ignoreTemplateLiterals: true,
120
- ignoreRegExpLiterals: true,
121
- tabWidth: 2
122
- }],
123
- "@stylistic/no-tabs": "error",
124
- "@stylistic/no-trailing-spaces": ["error"],
125
- "@stylistic/object-curly-spacing": ["error", "never", {
126
- objectsInObjects: false,
127
- arraysInObjects: false
128
- }],
129
- "@stylistic/quotes": ["error", "double", {
130
- avoidEscape: true,
131
- allowTemplateLiterals: "always"
132
- }],
133
- "@stylistic/semi": ["error", "never"],
134
- "@stylistic/space-before-function-paren": ["error", "never"],
135
- "@stylistic/yield-star-spacing": ["error", { before: true, after: false }],
136
- "constructor-super": "error",
137
- "no-unexpected-multiline": "error",
138
- "no-unused-vars": ["error", {
139
- caughtErrors: "all",
140
- caughtErrorsIgnorePattern: "^_+",
141
- argsIgnorePattern: "^_+",
142
- destructuredArrayIgnorePattern: "^_+",
143
- varsIgnorePattern: "^_+"
144
- }],
145
- "no-useless-assignment": "error",
146
- "prefer-const": "error",
147
- "@stylistic/no-multiple-empty-lines": ["error", { max: 1 }],
148
- "@stylistic/array-bracket-spacing": ["error", "never"],
149
- }
150
- },
151
- {
152
- name: "gesslar/uglier/lints-jsdoc",
153
- files: ["{work,src}/**/*.{mjs,cjs,js}"],
154
- plugins: {
155
- jsdoc,
156
- },
157
- rules: {
158
- "jsdoc/require-description": "error",
159
- "jsdoc/tag-lines": ["error", "any", {"startLines":1}],
160
- "jsdoc/require-jsdoc": ["error", { publicOnly: true }],
161
- "jsdoc/check-tag-names": "error",
162
- "jsdoc/check-types": "error",
163
- "jsdoc/require-param-type": "error",
164
- "jsdoc/require-returns-type": "error"
165
- }
166
- }
4
+ ...uglify({
5
+ with: [
6
+ "lints-js", // default files: ["**/*.{js,mjs,cjs}"]
7
+ "lints-jsdoc", // default files: ["**/*.{js,mjs,cjs}"]
8
+ "node", // default files: ["**/*.{js,mjs,cjs}"]
9
+ ]
10
+ })
167
11
  ]
package/package.json CHANGED
@@ -1,43 +1,52 @@
1
1
  {
2
2
  "name": "@gesslar/lpc-mcp",
3
- "version": "0.1.4",
4
3
  "description": "MCP server for LPC language server",
4
+ "author": "gesslar",
5
+ "version": "1.0.3",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/gesslar/lpc-mcp.git"
9
+ },
5
10
  "main": "index.js",
6
11
  "type": "module",
7
12
  "bin": {
8
13
  "lpc-mcp": "./src/index.js"
9
14
  },
10
15
  "engines": {
11
- "node": ">=20"
16
+ "node": ">=22"
12
17
  },
18
+ "packageManager": "pnpm@10.26.2",
13
19
  "scripts": {
14
20
  "start": "node src/index.js",
15
21
  "types:build": "tsc -p tsconfig.types.json",
16
22
  "lint": "eslint src/",
17
23
  "lint:fix": "eslint src/ --fix",
18
- "submit": "npm publish --access public",
19
- "update": "npx npm-check-updates -u && npm install",
20
- "pr": "gt submit --publish --restack --ai -m",
21
- "patch": "npm version patch",
22
- "minor": "npm version minor",
23
- "major": "npm version major"
24
+ "submit": "pnpm publish --access public --//registry.npmjs.org/:_authToken=\"${NPM_ACCESS_TOKEN}\"",
25
+ "update": "pnpm up -L",
26
+ "pr": "gt submit -p --ai",
27
+ "patch": "pnpm version patch",
28
+ "minor": "pnpm version minor",
29
+ "major": "pnpm version major"
24
30
  },
25
- "repository": {
26
- "type": "git",
27
- "url": "git+https://github.com/gesslar/lpc-mcp.git"
28
- },
29
- "keywords": [],
30
- "author": "gesslar",
31
+ "keywords": [
32
+ "fluffos",
33
+ "lpc",
34
+ "mud",
35
+ "mcp",
36
+ "model-context-protocol",
37
+ "shlemiel",
38
+ "schlemazel",
39
+ "hasenpfeffer",
40
+ "incorporated"
41
+ ],
31
42
  "license": "Unlicense",
32
43
  "homepage": "https://github.com/gesslar/lpc-mcp#readme",
33
44
  "dependencies": {
34
- "@modelcontextprotocol/sdk": "^1.20.2",
45
+ "@modelcontextprotocol/sdk": "^1.25.1",
35
46
  "vscode-jsonrpc": "^8.2.1"
36
47
  },
37
48
  "devDependencies": {
38
- "@eslint/js": "^9.39.0",
39
- "@stylistic/eslint-plugin": "^5.5.0",
40
- "eslint-plugin-jsdoc": "^61.1.11",
41
- "globals": "^16.5.0"
49
+ "@gesslar/uglier": "^0.0.9",
50
+ "eslint": "^9.39.2"
42
51
  }
43
52
  }
package/src/index.js CHANGED
File without changes
package/test.txt ADDED
@@ -0,0 +1,3 @@
1
+ test\n
2
+ test\n
3
+ test\n
@@ -1,33 +0,0 @@
1
- name: Giddyup
2
- permissions:
3
- contents: read
4
-
5
- on:
6
- push:
7
- branches: [main]
8
- pull_request:
9
- branches: [main]
10
-
11
- jobs:
12
- cowyboysounds:
13
- runs-on: ubuntu-latest
14
-
15
- strategy:
16
- matrix:
17
- node-version: [20.x, 22.x]
18
-
19
- steps:
20
- - name: Checkout code
21
- uses: actions/checkout@v4
22
-
23
- - name: Setup Node.js ${{ matrix.node-version }}
24
- uses: actions/setup-node@v4
25
- with:
26
- node-version: ${{ matrix.node-version }}
27
- cache: "npm"
28
-
29
- - name: Install dependencies
30
- run: npm ci
31
-
32
- - name: Run ESLint
33
- run: npm run lint