TavernKeeper Scan Report

Supker/ST-Copilot

Commit 1480960 Reviewed

No material or immediate-danger concern was identified in this review.

This advisory report describes what the named tools and review process found at one exact commit. Unknown or unobserved behavior may still exist.

0 immediate danger 0 material 15 low

What this review found

No material or immediate-danger item was identified.

Minor cautions

JavaScript analysis reported javascript.xray.unsafe-regex

Minor caution · medium confidence

A crafted input might briefly slow or freeze the local client, without showing broader security harm.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.

Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.

Impact: low · Exploitability: plausible

Developer action: Bound the input length or replace the expression when practical.

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.xray.unsafe-regex
File role
production
Source
src/utils/util-colorpicker.js:5

JavaScript analysis reported javascript.xray.unsafe-regex

Minor caution · medium confidence

A crafted input might briefly slow or freeze the local client, without showing broader security harm.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.

Contextual assessment: The expression may permit a local CPU slowdown, but this evidence shows no credential, persistence, code-execution, or cross-user impact.

Impact: low · Exploitability: plausible

Developer action: Bound the input length or replace the expression when practical.

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.xray.unsafe-regex
File role
production
Source
index.js:8583
Contextual expected matches (8)

JavaScript analysis reported javascript.download-to-execution

Expected behavior · medium confidence

The code fetches AI responses from model APIs and parses them as text. No evidence of running downloaded code.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution. The match applies to this repository.

Contextual assessment: The download-to-execution signal spans lines 308-558 covering the callGenerate function. The function uses fetch() to POST chat completions to either a user-configured custom URL (default localhost:5000/v1) or SillyTavern's Connection Manager profiles. Responses are processed via JSON.parse and deepExtract, which reads text and reasoning fields from various API response formats. No eval, Function constructor, innerHTML injection from response data, or other dynamic code execution sink is present in the visible source. The network retrieval is the core AI completion functionality stated in the project purpose.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.download-to-execution
File role
production
Source
src/api.js:308-558

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · medium confidence

The flagged links are a default local API address and a standard web graphics namespace. Neither sends data to a suspicious external server.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.

Contextual assessment: Detailed technical wording was omitted by the public report safety filter.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.xray.shady-link
File role
production
Source
index.js:1443

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · medium confidence

The flagged links are standard localhost API and internal SillyTavern endpoints. No suspicious external URLs are present.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.

Contextual assessment: Detailed technical wording was omitted by the public report safety filter.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.xray.shady-link
File role
production
Source
src/api.js:441

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The flagged link is just a default local address for connecting to a local AI model. It is a standard configuration value users can change, and it matches the extension's stated purpose of routing to different API endpoints.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.

Contextual assessment: Detailed technical wording was omitted by the public report safety filter.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.xray.shady-link
File role
production
Source
src/session.js:34

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · medium confidence

The file is a bundled build output, not deliberately obfuscated code. This is a normal part of the build process.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.

Contextual assessment: Detailed technical wording was omitted by the public report safety filter.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.xray.obfuscated-code
File role
production
Source
index.js:1

JavaScript analysis reported javascript.download-to-execution

Expected behavior · medium confidence

The extension fetches AI responses from API endpoints the user configures, and renders charts in the UI. No evidence of downloading and running code from the network.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.download-to-execution. The match applies to this repository.

Contextual assessment: The download-to-execution signal flags co-occurrence of network retrieval and a code execution sink in the same file. The visible fetch calls target user-configured custom API endpoints (default localhost:5000/v1/chat/completions) or SillyTavern internal APIs (/api/tokencount), consistent with the extension's stated purpose of routing AI completions. Responses are parsed via JSON.parse and text is extracted into string variables. The innerHTML usage at line 3506 writes SVG gradient definitions using template literals with color values from theme settings, not from network responses. No eval, Function constructor, or dynamic script injection from fetched data is demonstrated in the supplied evidence windows.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.download-to-execution
File role
production
Source
index.js:1-1620

JavaScript analysis reported javascript.xray.obfuscated-code

Expected behavior · high confidence

The scanner flagged this file as containing obfuscated code, but the actual content is plain, readable JavaScript exporting text constants and AI prompt templates for a roleplay assistant extension. There is nothing hidden or encoded here.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.obfuscated-code. The match applies to this repository.

Contextual assessment: The flagged file is a constants module containing plain ES module exports of string identifiers and large template-literal prompt strings for the ST-Copilot extension. The code is fully readable with no eval, no encoded payloads, no dynamic code generation, no concealed execution, and no obfuscation techniques. The scanner likely triggered on the dense, long template-literal prompt text, but this is legitimate static configuration data matching the project's stated purpose as an AI roleplay assistant. No executable behavior, network calls, or credential handling exists in this file.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.xray.obfuscated-code
File role
production
Source
src/constants.js:1

JavaScript analysis reported javascript.xray.shady-link

Expected behavior · high confidence

The scanner flagged standard SVG namespace URIs as suspicious links, but these are just identifiers required by the browser when creating SVG chart elements. No data is sent anywhere; these are not web addresses that get visited.

Technical evidence

Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.

Contextual assessment: Detailed technical wording was omitted by the public report safety filter.

Impact: none · Exploitability: unlikely

Developer action: none

Scanner
javascript-analysis webcrack-2.16.0_js-x-ray-16.0.0_signatures-1_literals-1_families-1
Rule
javascript.xray.shady-link
File role
production
Source
src/features/feature-stats.js:313

Related contextual observations

Default localhost API URL and user-configurable custom API routing

low risk · medium confidence

The default custom API URL points to localhost, which is a local development server. Users can change it to route Copilot to a different model endpoint.

Technical assessment

Detailed technical wording was omitted by the public report safety filter.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Custom API key sent only to user-configured endpoint

low risk · medium confidence

The API key is only sent to the user's chosen custom endpoint, not to any third party.

Technical assessment

When connectionSource is 'custom', the Authorization header is set to 'Bearer ' + settings.customKey and sent only to the user-configured customUrl endpoint. The key is stored in SillyTavern extension settings and transmitted solely to the destination the user explicitly chose. This matches the documented Connection Routing feature.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Plain string constants and prompt templates with no obfuscation

low risk · high confidence

All exported constants are plain text identifiers and prompt templates with no hidden logic.

Technical assessment

Detailed technical wording was omitted by the public report safety filter.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

SVG namespace URI in createElementNS is not a network link

low risk · high confidence

The flagged URL is the standard SVG namespace required for creating chart elements. It is not a network destination.

Technical assessment

Line 313 calls document.createElementNS with the W3C SVG namespace URI to create a circle element for a chart data point. This is the standard DOM API for SVG element creation and does not trigger any network activity. The same namespace URI appears on lines 272, 363, 367, and 381 for creating SVG, line, and text elements.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Localhost API endpoint as default custom URL setting

low risk · high confidence

This is a normal default placeholder for a local AI model connection, matching the documented feature for custom API routing.

Technical assessment

The default customUrl value points to a localhost endpoint commonly used for local LLM inference servers. It is part of the settings defaults object and is only used when connectionSource is set to 'custom' by the user, aligning with the documented Connection Routing feature.

Impact: none · Exploitability: unlikely

Developer action: none

Sources:

Coverage and limitations

JavaScript coverage

Unresolved JavaScript stages

Tools

Limitations

Technical scan identity