Adjust whitespace, indentation and add missing semicolon in the returned function inside NullProtoObjectViaSc64bit. This is a purely stylistic change (spacing around `function` and consistent indentation) and does not alter runtime behavior.
Replace the explicit error throw when ScriptControl-based object creation fails with a safe fallback factory that returns an empty object. This prevents runtime errors in 64-bit environments and during subsequent enumBugKeys cleanup by returning a benign constructor instead of throwing.
Add examples/fix_excel_format.js which uses the WelsonJS msoffice Office.Excel API to read rows from data/fulllist.xlsx (worksheet 2), extract company, reservation time, resource, port and bandwidth, and log each row. For each entry it generates a per-company card Excel file by opening card_format.xlsx, populating template cells (with sensible defaults for missing resource/port/bandwidth), saving as data/{company}_card.xlsx, and exporting main.
Add data/claude_desktop_config.example.json providing an example desktop configuration for the Claude app. It defines an "mcpServers" entry ("local-tools") that invokes Windows cscript to run app.js with mcploader args, and a "preferences" block with toggles for cowork/ccd scheduled tasks, cowork web search enabled, and sidebarMode set to "chat".
Delete the <EmbeddedResource Include="McpToolsList.json" /> entry from WelsonJS.Augmented/WelsonJS.Launcher/WelsonJS.Launcher.csproj so the JSON file is no longer embedded into the assembly as a resource.
Introduce an isError flag and propagate it through RPC responses, including initialize and action listings. Add a new action "evaluate_js_es3" with an input schema that accepts a script string and a handler that evaluates the script (returns the evaluation result as text or "Error" on exception). Also set isError for unknown methods so the RPC indicates failures consistently.
Replace the previous in-file handling of JSON-RPC tools methods with a NotImplementedException and remove the ResolveToolsCall helper. Also delete the large McpToolsList.json resource that previously provided the tools manifest. This stubs out the tools/list and tools/call behavior so the tooling manifest and handler can be reworked or moved elsewhere in a follow-up change.
Treat a callback returning false as a signal to suppress a JSON-RPC reply (jsonrpc2.extract). Add a special-case in mcploader to return false for "notifications/initialized" so no response is sent. In stdio-server, skip sending falsy messages, keep object serialization, and write outgoing messages to both StdOut and StdErr (useful for logging/debugging). Small cleanup in catch formatting.
Implement MCP JSON-RPC handling and related I/O fixes: mcploader now handles initialize, tools/list and tools/call (implements add_both_numbers) and returns JSON-RPC responses; stdio-server.send serializes object messages before writing; console logging on WScript now writes muted messages to StdErr; bump jsonrpc2 version to 0.1.7 and reformat extract(). These changes enable proper MCP capability negotiation, tool discovery and invocation over stdio.
Change existsSync to resolve filenames relative to the current script directory by prepending require._getCurrentScriptDirectory() + "\\" to the provided filename before calling Scripting.FileSystemObject.FileExists. This ensures relative paths are correctly resolved when checking file existence (prevents false negatives when filenames are relative to the script).
Convert console._muted from a function to a boolean by invoking an IIFE during module initialization. This reads the WScript 'quiet' flag once and stores the result, and updates _echoCallback to reference the boolean (remove the function call). This simplifies usage and avoids repeated runtime checks.
Introduce a StdioServer module and mcploader entry script, and extend jsonrpc2 with an extract() helper. stdio-server.js provides an EventTarget-based wrapper for reading/writing via WScript stdio. mcploader.js uses the server and JsonRpc2.extract to parse incoming JSON-RPC messages and respond. Also change DEFAULT_JSONRPC2_URL to http://localhost:5555, export the new extract function, and bump jsonrpc2 version to 0.1.6.
Introduce a _muted() helper to check for a WScript "quiet" argument and avoid output when muted. Replace the old _echoDefault with a unified _echoCallback(params, type) that writes messages via WScript and respects the muted flag. Refactor _echo to build a params object (including params.message and scope), prepend the optional type, invoke _echoCallback, and push the composed message to _messages. Adjust callback invocation logic (remove the previous null check and inline handling).
Replace WScript.Echo with WScript.StdOut.WriteLine for WSH console output and reword provider comments to reflect requesting scripts (including LLM/AI services). Update core-js usage to app/assets/js/core-js-3.49.0.wsh and adjust related require paths (including squel), and remove the old core-js-3.26.1 minified file. Other minor changes include updates to bootstrap.bat and lib/http.js.
Add new webpacked core-js bundle (app/assets/js/core-js-3.49.0.wsh.js) containing core-js v3.49.0 polyfills and runtime helpers. The file includes the webpack bootstrap and numerous core-js modules to provide compatibility for older environments (license and source referenced in header).
app.js: Add a _useStdin flag (via WScript.Arguments.Named.Exists("stdin")) and skip default echoing when stdin is in use; switch WScript.Echo to WScript.StdOut.WriteLine for proper stdout output. Remove separator comment lines before initializeConsole. bootstrap.js: Bump copyright year to 2026 and remove an obsolete/commented CORS-to-ADO registry tweak. These changes improve console output behavior for piped input and clean up bootstrap metadata and comments.
Pass the serializer and request id to ResolveToolsCall and implement a basic dispatcher that extracts params.method. Add a handler stub for "run_jsrt_script" (extracts the script argument; implementation TODO) and log unknown tool methods. Also update McpToolsList.json scriptContract notes from Korean to English to improve readability/localization.
Reordered the parameters for the JSON-RPC dispatch callback to ensure the serializer and request id are passed in the correct positions. Updated the Func signature in JsonRpc2Dispatcher.cs to include the int id parameter before the CancellationToken, and adjusted the invocation/lambda in JsonRpc2.cs to match (method, ser, id, ct), preventing parameter mismatches when handling requests.
Forward the JSON-RPC request id through the dispatcher and handler so methods can access the id. JsonRpc2Dispatcher now passes the id to dispatchMethodAsync, and the JsonRpc2 endpoint lambda accepts the id parameter. Implemented a call for "tools/call" that extracts the tool name via ser.ExtractFrom(id, "params", "name") and invokes a new ResolveToolsCall(string) stub (TODO: implement actual tool logic). This prepares the codepath for tooling invocation based on request params.
Add input validation to search(): require keyword be a non-empty string and throw a TypeError if not. Normalize limit to a finite integer between 1 and 100 (default 10) using Math.floor and Math.min/Math.max to prevent invalid or out-of-range values.
Replace the old JsonRpc2 relay-based product search with a direct HTTP client call to a SERP API endpoint. The search function signature changed from search(s) to search(keyword, limit) and now sends a GET to the workers.dev /api/v1/products/search endpoint with keyword and limit parameters, returning the HTTP responseBody. Also updated VERSIONINFO and removed the previous security notice and remote script relay logic. Note: callers must update usages due to the signature and return-value change.
Add SPDX license header and project copyright/URL to JsNative.cs for proper licensing metadata. Update JsonRpc2Dispatcher.cs to improve the exception text to "Unsupported JSON-RPC version: ..." (capitalization and hyphen) for a clearer error message when the jsonrpc version is invalid.
Replace hardcoded WHOIS resource values: change WhoisClientAddress from 141.101.82.1 to 49.8.14.101, and replace punycode domains with the human-readable whois.kr for WhoisReferrerUrl and WhoisServerUrl. Updated Resources.resx and synchronized the generated XML documentation comments in Resources.Designer.cs to reflect the new values.
Move the setTimeout and its contents inside the visible check so map.invalidateSize() and navigator.geolocation.getCurrentPosition(...) are only invoked when the map container is shown. This avoids unnecessary map invalidation and geolocation requests when the view is hidden; try/catch and the 0ms defer are preserved.
Introduce useLocationMarker hook to manage a Leaflet marker (create, update and bind a popup). MapView now uses the hook and, when visible, requests navigator.geolocation to place/center a marker at the user's current position with a popup showing coordinates. Also includes a small indentation/whitespace cleanup.
Modify WelsonJS.Augmented/WelsonJS.Launcher/app.config to replace the previous punycode WHOIS endpoints with the canonical whois.kr URLs (WhoisServerUrl and WhoisReferrerUrl) and change WhoisClientAddress from 141.101.82.1 to 49.8.14.101. No other configuration values were modified.
Rename AzureAiService resource keys and app settings to AzureCognitive across the launcher. Updated Properties/Resources.Designer.cs to use AzureCognitive* properties, changed Resources.resx keys and the service prefix value, and updated app.config appSettings keys accordingly. Also adjusted editor.html to use the new setting names and user-facing "Azure Cognitive" wording and updated how the chat completions URL is constructed to use the AzureCognitive* settings.
Integrate a Leaflet-based MapView into the editor UI: load Leaflet CSS/JS resources, add a MapView React component (initializes map, OpenStreetMap tiles, cleanup on unmount, and calls invalidateSize when shown), and wire a new Map button into the ribbon to toggle map visibility. Add show/hide handling for the Editor component (toggle display via a visible prop) and manage map/editor layout by rendering them side-by-side and toggling display. Rename Azure AI references to Azure Cognitive (handler and button id/label) and update related prop names. Minor resource list and styling updates for layout and dependencies.