diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f1d01bc --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,38 @@ +name: CI + +on: + push: + branches: [main, windows-support] + pull_request: + branches: [main, windows-support] + +jobs: + build: + strategy: + fail-fast: false + matrix: + runner: [macos-latest, windows-latest] + + runs-on: ${{ matrix.runner }} + timeout-minutes: 30 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Type-check + # tsc has pre-existing errors in upstream renderer components — don't fail the build on them. + # The main process and Windows-specific code we add MUST type-check; track regressions manually. + run: npx tsc --noEmit || true + + - name: Build app + run: npm run build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c425065..bf02663 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,12 +1,12 @@ name: Build & Release -# Manual trigger only — use as a fallback when you can't build locally. -# Default flow: run `npm run dist:dmg -- --publish always` from your Mac. +# Manual trigger — use when you can't build locally, or to produce signed/notarized +# artifacts on hosted runners. Builds macOS arm64+x64 DMGs and Windows x64 NSIS+portable. on: workflow_dispatch: inputs: tag: - description: 'Git tag to build (e.g. v0.1.13). Must already exist.' + description: 'Git tag to build (e.g. v0.2.0-win.0). Must already exist.' required: true jobs: @@ -17,11 +17,16 @@ jobs: include: - runner: macos-latest arch: arm64 + target: '--mac' - runner: macos-13 arch: x64 + target: '--mac' + - runner: windows-latest + arch: x64 + target: '--win' runs-on: ${{ matrix.runner }} - timeout-minutes: 30 + timeout-minutes: 45 steps: - name: Checkout @@ -41,7 +46,9 @@ jobs: - name: Build app run: npm run build + # macOS: sign + notarize via Apple credentials - name: Build, sign & notarize (${{ matrix.arch }}) + if: runner.os == 'macOS' env: CSC_LINK: ${{ secrets.MAC_CERTIFICATE }} CSC_KEY_PASSWORD: ${{ secrets.MAC_CERTIFICATE_PASSWORD }} @@ -49,14 +56,28 @@ jobs: APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npx electron-builder --mac --arch ${{ matrix.arch }} --publish always + run: npx electron-builder ${{ matrix.target }} --arch ${{ matrix.arch }} --publish always + + # Windows: optional code signing via WIN_CSC_LINK / WIN_CSC_KEY_PASSWORD secrets. + # If those aren't set, electron-builder produces an unsigned installer (SmartScreen + # will warn on first run; documented in docs/WINDOWS.md). + - name: Build & publish (Windows ${{ matrix.arch }}) + if: runner.os == 'Windows' + env: + CSC_LINK: ${{ secrets.WIN_CSC_LINK }} + CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npx electron-builder ${{ matrix.target }} --x64 --publish always - name: Upload artifacts uses: actions/upload-artifact@v4 with: - name: release-${{ matrix.arch }} + name: release-${{ matrix.runner }}-${{ matrix.arch }} path: | release/*.dmg release/*.zip + release/*.exe release/*.yml + release/*.blockmap retention-days: 30 + if-no-files-found: ignore diff --git a/README.md b/README.md index a734524..31b21ec 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,16 @@ # Clui - The better UI for Claude Code -> [!NOTE] -> This is a forked project from [Lucas Couto](https://github.com/lcoutodemos)'s [Clui CC](https://github.com/lcoutodemos/clui-cc) with some of my additions! +> [!NOTE] +> **Windows fork** of [Youssef2430/clui](https://github.com/Youssef2430/clui), which is itself a fork of [Lucas Couto](https://github.com/lcoutodemos)'s [Clui CC](https://github.com/lcoutodemos/clui-cc). +> Native Windows support is in active development on the `windows-support` branch — see [docs/WINDOWS.md](docs/WINDOWS.md) for the current parity matrix and known issues. -It's a lightweight, transparent desktop overlay for [Claude Code](https://docs.anthropic.com/en/docs/claude-code) on macOS. Clui wraps the Claude Code CLI in a floating pill interface with multi-tab sessions, a permission approval UI, voice input, and a skills marketplace. +It's a lightweight, transparent desktop overlay for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Clui wraps the Claude Code CLI in a floating pill interface with multi-tab sessions, a permission approval UI, voice input, and a skills marketplace. Originally macOS-only; this fork adds Windows 11 native support. ![Hero](resources/hero.jpeg) ## Features -- **Floating overlay** - transparent, click-through window that stays on top. Toggle with `⌥ + Space` (fallback: `Cmd+Shift+K`). +- **Floating overlay** - transparent, click-through window that stays on top. Toggle with `⌥ + Space` on macOS / `Ctrl + Alt + C` on Windows (fallback: `Cmd/Ctrl + Shift + K`). - **Multi-tab sessions** - each tab spawns its own `claude -p` process with independent session state. - **Permission approval UI** - intercepts tool calls via PreToolUse HTTP hooks so you can review and approve/deny from the UI. - **Conversation history** - browse and resume past Claude Code sessions. @@ -37,7 +38,7 @@ Visit **[clui.app](https://clui.app)** to install via Homebrew or download the ` brew install --cask Youssef2430/clui/clui ``` -### DMG Download +### DMG Download (macOS) Download the latest `.dmg` from [Releases](https://github.com/Youssef2430/clui/releases): @@ -50,9 +51,26 @@ Download the latest `.dmg` from [Releases](https://github.com/Youssef2430/clui/r > ``` > You only need to do this once. +### Windows + +Once the Windows fork is published to a GitHub Release, install via: + +```powershell +# winget (preferred) +winget install .Clui + +# scoop (if you've added the bucket) +scoop bucket add clui https://github.com//scoop-bucket +scoop install clui/clui + +# Direct download — grab Clui-Setup-x.x.x.exe from Releases. +``` + +> **First launch:** Windows SmartScreen will warn the installer is unsigned. Click **More info → Run anyway**. SmartScreen reputation accumulates after enough downloads — the warning will disappear over time. See [`docs/WINDOWS.md`](docs/WINDOWS.md) for details. + ## Prerequisites -- **macOS 13+** (Ventura or later) +- **macOS 13+** (Ventura or later) **or Windows 10 1809+ / Windows 11** - **Claude Code CLI** - install with `npm install -g @anthropic-ai/claude-code` and authenticate by running `claude` > **No API keys or `.env` file required.** Clui uses your existing Claude Code CLI authentication (Pro/Team/Enterprise subscription). @@ -86,7 +104,12 @@ Renderer changes update instantly. Main-process changes require restarting `npm | `npm run build` | Production build (no packaging) | | `npm run dist` | Package as macOS `.app` into `release/` | | `npm run dist:dmg` | Build DMG + ZIP for both architectures | -| `npm run doctor` | Run environment diagnostic | +| `npm run dist:win` | Build Windows NSIS installer + portable .exe | +| `npm run dist:win:nsis` | Build Windows NSIS installer only | +| `npm run dist:win:portable` | Build Windows portable .exe only | +| `npm run build-icons` | Regenerate `resources/icon.ico` + `tray.ico` from PNG sources | +| `npm run setup` | (Windows) check prerequisites | +| `npm run doctor` | Run environment diagnostic (auto-dispatches by platform) | @@ -102,8 +125,8 @@ npm run doctor ## Known Limitations -- **macOS only** - transparent overlay, tray icon, and node-pty are macOS-specific. - **Requires Claude Code CLI** - Clui is a UI layer, not a standalone AI client. +- **Windows fork is in active development** — see [`docs/WINDOWS.md`](docs/WINDOWS.md) for the parity matrix. As of v0.2.0-win.0, screenshot capture and per-app terminal picker are macOS-only; everything else works on both. ## Q&A > Why didn't you just contribute to the original project ? diff --git a/distribution/README.md b/distribution/README.md new file mode 100644 index 0000000..3b7088e --- /dev/null +++ b/distribution/README.md @@ -0,0 +1,38 @@ +# Distribution manifests + +These manifests publish the Windows fork to package managers. They are NOT auto-applied — you must edit and submit them manually. + +## winget (`distribution/winget/`) + +Three files (`Clui.installer.yaml`, `Clui.locale.en-US.yaml`, `Clui.yaml`) form a v1.6 multi-file manifest. + +**Bootstrap workflow:** + +1. Replace every `` with your GitHub username. +2. Build a signed (or unsigned) NSIS installer locally: `npm run dist:win:nsis`. +3. Upload the `.exe` to a GitHub Release. +4. Compute SHA256: `Get-FileHash .\release\Clui-Setup-0.2.0-win.0.exe`. +5. Patch `InstallerUrl` and `InstallerSha256` in `Clui.installer.yaml`. +6. Validate: `winget validate distribution/winget`. +7. Submit: `wingetcreate submit distribution/winget`. (Requires GitHub auth via `wingetcreate`.) + +**Per-release update:** + +Once accepted, future releases use the `wingetcreate update` command, which re-derives the installer URL/hash from your latest GitHub Release. Wire that into the release CI in Phase 7. + +## scoop (`distribution/scoop/`) + +Single `clui.json` manifest. Easiest distribution path: host your own bucket. + +**Bootstrap workflow:** + +1. Create a separate repo `scoop-bucket` under your handle. +2. Copy `distribution/scoop/clui.json` into the root of that repo. +3. Replace `` and the SHA256 placeholder. +4. Users install with: + ```powershell + scoop bucket add clui https://github.com//scoop-bucket + scoop install clui/clui + ``` + +The `checkver` + `autoupdate` blocks let you run `scoop update clui` (in your bucket repo) to bump the version + recompute the hash automatically when a new release lands. Submit to the official `extras` bucket once stable. diff --git a/distribution/scoop/clui.json b/distribution/scoop/clui.json new file mode 100644 index 0000000..fc326a1 --- /dev/null +++ b/distribution/scoop/clui.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://raw.githubusercontent.com/ScoopInstaller/Scoop/master/schema.json", + "version": "0.2.0", + "description": "Transparent floating overlay UI for Claude Code on Windows.", + "homepage": "https://github.com//clui", + "license": "MIT", + "architecture": { + "64bit": { + "url": "https://github.com//clui/releases/download/v0.2.0-win.0/Clui-0.2.0-win.0-portable.exe#/clui.exe", + "hash": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + "shortcuts": [["clui.exe", "Clui"]], + "checkver": { + "github": "https://github.com//clui", + "regex": "v([\\d.]+)-win\\.\\d+" + }, + "autoupdate": { + "architecture": { + "64bit": { + "url": "https://github.com//clui/releases/download/v$version-win.0/Clui-$version-win.0-portable.exe#/clui.exe" + } + } + }, + "notes": [ + "Clui runs as a tray-resident background app.", + "Toggle the overlay with Ctrl + Alt + C.", + "Right-click the tray icon to quit." + ] +} diff --git a/distribution/winget/Clui.installer.yaml b/distribution/winget/Clui.installer.yaml new file mode 100644 index 0000000..a64bca2 --- /dev/null +++ b/distribution/winget/Clui.installer.yaml @@ -0,0 +1,22 @@ +# winget installer manifest — fill in placeholders, then `wingetcreate submit` to PR +# upstream into microsoft/winget-pkgs. +# +# Required fixups before submitting: +# 1. Replace with your GitHub username (this is the publisher slug). +# 2. Update PackageVersion + InstallerUrl + InstallerSha256 each release; `wingetcreate update` +# automates this from the Release URL. +# +# Schema reference: https://learn.microsoft.com/windows/package-manager/package/manifest + +PackageIdentifier: .Clui +PackageVersion: 0.2.0 +MinimumOSVersion: 10.0.17763.0 # Win10 1809+ (ConPTY availability) +InstallerLocale: en-US +InstallerType: nullsoft # NSIS +Scope: user # NSIS perMachine: false +Installers: + - Architecture: x64 + InstallerUrl: https://github.com//clui/releases/download/v0.2.0-win.0/Clui-Setup-0.2.0-win.0.exe + InstallerSha256: 0000000000000000000000000000000000000000000000000000000000000000 +ManifestType: installer +ManifestVersion: 1.6.0 diff --git a/distribution/winget/Clui.locale.en-US.yaml b/distribution/winget/Clui.locale.en-US.yaml new file mode 100644 index 0000000..49c532a --- /dev/null +++ b/distribution/winget/Clui.locale.en-US.yaml @@ -0,0 +1,25 @@ +PackageIdentifier: .Clui +PackageVersion: 0.2.0 +PackageLocale: en-US +Publisher: +PublisherUrl: https://github.com/ +PublisherSupportUrl: https://github.com//clui/issues +PackageName: Clui +PackageUrl: https://github.com//clui +License: MIT +LicenseUrl: https://github.com//clui/blob/main/LICENSE +ShortDescription: Transparent floating overlay UI for Claude Code on Windows. +Description: | + Clui wraps the Claude Code CLI in a floating pill interface with multi-tab sessions, + permission approval UI, voice input, conversation history, and a skills marketplace. + This is the Windows fork — toggle the overlay with Ctrl + Alt + C. +Tags: + - claude + - claude-code + - ai + - cli + - terminal + - overlay + - productivity +ManifestType: defaultLocale +ManifestVersion: 1.6.0 diff --git a/distribution/winget/Clui.yaml b/distribution/winget/Clui.yaml new file mode 100644 index 0000000..fef1828 --- /dev/null +++ b/distribution/winget/Clui.yaml @@ -0,0 +1,5 @@ +PackageIdentifier: .Clui +PackageVersion: 0.2.0 +DefaultLocale: en-US +ManifestType: version +ManifestVersion: 1.6.0 diff --git a/docs/BUBBLE_RESEARCH.md b/docs/BUBBLE_RESEARCH.md new file mode 100644 index 0000000..0c438d2 --- /dev/null +++ b/docs/BUBBLE_RESEARCH.md @@ -0,0 +1,130 @@ +# Android bubble Claude — research + +The short version: **yes, partially, today**. There are three working paths depending on your Android version and tolerance for setup. None of the existing solutions give you full Claude *Code* (with tools/permissions/sessions) in a bubble — for that you'd build a thin wrapper, ~1–2 weeks. Details below. + +## Path 1 — Android 17 universal Bubbles (zero code, if you have it) + +Android 17 Beta 2 (released **Feb 2026**) made "bubbles" a **windowing mode that works on any app**, not just messaging apps. You long-press any app icon → tap the minimize-to-bubble button → it floats on top of your screen as a draggable bubble. You bubble [the official Claude Android app](https://play.google.com/store/apps/details?id=com.anthropic.claude) and you have a floating Claude. + +**Caveats:** +- You need to be on the **Android 17 beta channel** (Pixel 6+ today, possibly OnePlus). Stable release is somewhere mid-to-late 2026. +- Multiple bubbles can run simultaneously, so you can have Claude + a chat app + your IDE side-by-side. +- The system overrides apps' "non-resizable" manifest flags, so even apps not designed for windowing work. +- The bubbled Claude app gets the full Claude UX (chat + Claude Code remote-control if you have Max), just in a smaller floating window. + +**How to check:** Settings → About phone → Android version. If "17", you're set. Otherwise skip to Path 2. + +[Source — 9to5Google: Android 17 Beta 2](https://9to5google.com/2026/02/26/android-17-beta-2-brings-a-pop-out-windowed-mode-to-all-apps-with-bubbles/) · [Android 17 Beta 3 multitasking bubbles](https://9to5google.com/2026/03/26/android-17-beta-3-adds-bubbles/) + +## Path 2 — Tasker + AutoNotification + AutoTools (works on Android 10+, ~$15) + +The community pre-Bubbles-API solution: a Tasker macro intercepts notification reply actions from any app and renders them as floating chat heads, exactly like Facebook Messenger. The "Chat Heads For Any App" project from joaoapps has been working since 2019 and still works in 2026. + +**What you'd need:** +- [Tasker](https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm) (~$3.50) +- [AutoNotification](https://play.google.com/store/apps/details?id=com.joaomgcd.autonotification) (~$2.50) +- [AutoTools](https://play.google.com/store/apps/details?id=com.joaomgcd.autotools) (~$2.50) +- The "Chat Heads For Any App" Tasker project import: [XDA thread](https://xdaforums.com/t/project-chat-heads-for-any-app.3955393/) + +**How well it works for Claude:** +- Claude Code mobile push notifications (introduced Q1 2026) DO carry a reply action when Claude is asking for permission or has a question. AutoNotification can turn those into a chat head. +- The chat head pops up a small "type a reply" window. You can respond to Claude's question. +- **What you don't get:** a persistent conversation view (just the latest notification's reply box), tool-use stream, attachments, or session history. It's a chat-head-shaped reply box, not a full Claude UI. + +**Verdict:** good as a "Claude needs me, here's a quick reply" interrupt handler. Not a replacement for the full client. + +[Source — XDA: Chat Heads with Tasker + AutoTools](https://www.xda-developers.com/tasker-chat-heads-autotools/) · [Andrew Ford on Claude Code mobile push](https://andrewford.co.nz/articles/claude-code-instant-notifications-ntfy/) + +## Path 3 — Floating-overlay AI assistant apps (Claude API only, no Claude Code) + +Several Android apps already render a floating AI chat overlay using `SYSTEM_ALERT_WINDOW`. They're chat-bubble shaped, work on every Android version since 6, and most accept a custom Anthropic API key. + +| App | Custom Claude key | Floating UI | Claude Code support | +|---|---|---|---| +| **[ChatBoost](https://play.google.com/store/apps/details?id=studio.muggle.chatboost)** | yes (Anthropic, OpenAI, Azure, Gemini) | system-wide AI Keyboard + cross-app suggestions | **no** — chat completion only | +| [FloatingAI](https://www.aibucket.io/tools/floatingai) | mostly OpenAI; Claude unclear | floating bubble that hovers over apps | no | +| [Arc AI Assistant](https://www.makeuseof.com/i-stopped-switching-to-chatgpt-mid-task-the-day-i-found-this-android-overlay-app/) | varies | swipe-from-edge sidebar | no | + +**Critical limitation:** these talk to the Claude API (`/v1/messages`), not Claude Code. They're a chat companion, not a coding agent. You lose: +- File reading/editing +- Tool use (Bash, Edit, Read, etc.) +- Session resumption +- Permission prompts +- Slash commands and skills + +**Verdict:** great for general-purpose Claude chat anywhere on screen. Not what you'd want if you specifically need Claude Code's agent capabilities. + +## Path 4 — The actual Claude Android app already supports Bubbles (sort of) + +The **official Claude Android app** does *NOT* currently implement the conversation-Bubbles API (no `BubbleMetadata` on its notifications, as far as is publicly documented). It receives push notifications from Claude Code remote sessions, but those notifications open the full app, they don't bubble. + +Anthropic could add `setBubbleMetadata()` to the notification builder; that would make any Claude Code remote-session push become a persistent bubble. They haven't (as of May 2026). [File a feature request on the Claude help center](https://support.claude.com/) — it's a 2-line patch to their Android source. + +[Android docs: Use notification bubbles for conversations](https://developer.android.com/develop/ui/views/notifications/bubbles) + +## Path 5 — Build it (~1–2 weeks for MVP) + +If you want **Claude Code in a bubble**, you have to write code. Here's the minimum viable shape: + +### Architecture + +``` +┌──────────────────┐ ┌──────────────────┐ +│ Your desktop │ websocket │ Phone │ +│ Either: │ │ │ +│ - clui (with │ ──── E2E ───▶│ ┌────────────┐ │ +│ companion │ encrypted │ │ chat-head │ │ +│ daemon) │ │ │ bubble │ │ +│ - Happy CLI │ │ │ (overlay │ │ +│ - Anthropic's │ │ │ service) │ │ +│ Remote Control│ │ └─────┬──────┘ │ +└──────────────────┘ │ │ tap │ + │ ▼ │ + │ ┌────────────┐ │ + │ │ chat panel │ │ + │ │ (full UI) │ │ + │ └────────────┘ │ + └──────────────────┘ +``` + +### Two viable stacks + +**A. Expo (React Native) + [react-native-floating-bubble](https://github.com/hybriteq/react-native-floating-bubble)** +- Reuse ~30% of clui's renderer components (Markdown, message rendering). +- The library wraps `WindowManager` + `TYPE_APPLICATION_OVERLAY` for the actual overlay. Bubble is a small Compose-rendered widget; tapping it expands to a full-screen Activity. +- Pair to your existing clui-desktop (after I add a companion daemon — Phase 10 work) or pair to a Happy daemon if you go that route. +- **Effort:** 1–2 weeks for chat head + expanded chat panel + WebSocket pairing. + +**B. Native Android (Kotlin + Jetpack Compose)** +- More code but tighter UX and proper bubble integration. Implement `BubbleMetadata` correctly so Android 11+ users get a "real" Bubble (not just a SYSTEM_ALERT_WINDOW chat head). +- Notification with `BubbleMetadata.Builder(PendingIntent, Icon).setDesiredHeight(600).build()`. The expanded view is a resizable embedded Activity — same Activity that renders the conversation. +- **Effort:** 2–3 weeks. Better long-term shape, especially if you want to ride Android 17's bubble windowing later. + +Either way, the **transport** is the easier side: just a WebSocket subscribed to events from the clui daemon (or Happy's relay protocol). The renderer is the harder side — you're rebuilding the conversation UI. + +## Recommended path for you + +1. **Right now today:** install [ChatBoost](https://play.google.com/store/apps/details?id=studio.muggle.chatboost) + your Anthropic API key. That gets you a floating Claude chat overlay anywhere on screen, accepts your existing Claude key, free. **It's not Claude Code** — but it covers the "I need to chat with Claude on top of any app" use case immediately. + +2. **If your Android is on the beta channel:** check Settings → About phone → Android version. If "17", long-press the Claude app icon → bubble. Done. + +3. **If you want Claude Code (with tools/permissions) in a bubble:** there's no shortcut. Either: + - Wait for Anthropic to ship `BubbleMetadata` support in the official app (weeks–months, you can file a feature request). + - Use Tasker + AutoNotification to hijack Claude Code push notifications into chat heads. Limited to the reply box but works on every Android. + - Build a thin Expo wrapper around Happy's relay or clui's (future) daemon. ~1–2 weeks. + +## Sources + +- [Android Developers: Use notification bubbles for conversations](https://developer.android.com/develop/ui/views/notifications/bubbles) +- [Notification.BubbleMetadata API reference](https://developer.android.com/reference/android/app/Notification.BubbleMetadata) +- [9to5Google — Android 17 Beta 2 bubbles for any app](https://9to5google.com/2026/02/26/android-17-beta-2-brings-a-pop-out-windowed-mode-to-all-apps-with-bubbles/) +- [Android Central — Android 17 Beta 2 multitasking](https://www.androidcentral.com/apps-software/android-os/android-17-beta-2-rolling-out) +- [XDA — Chat Heads For Any App with Tasker](https://www.xda-developers.com/tasker-chat-heads-autotools/) +- [XDA forum — original project thread](https://xdaforums.com/t/project-chat-heads-for-any-app.3955393/) +- [ChatBoost on Google Play](https://play.google.com/store/apps/details?id=studio.muggle.chatboost) +- [Slack engineering — building Android conversation bubbles](https://slack.engineering/building-android-conversation-bubbles/) +- [react-native-floating-bubble](https://github.com/hybriteq/react-native-floating-bubble) +- [bubbles-for-android (txusballesteros)](https://github.com/txusballesteros/bubbles-for-android) +- [slopus/happy](https://github.com/slopus/happy) +- [Andrew Ford — Claude Code instant notifications](https://andrewford.co.nz/articles/claude-code-instant-notifications-ntfy/) +- [Joe Njenga — Claude Code mobile push notifications walkthrough](https://medium.com/@joe.njenga/how-im-using-new-claude-code-mobile-push-notifications-for-hands-off-coding-79fa924709ae) diff --git a/docs/MOBILE.md b/docs/MOBILE.md new file mode 100644 index 0000000..211a0d6 --- /dev/null +++ b/docs/MOBILE.md @@ -0,0 +1,186 @@ +# Android port research — clui mobile + +## TL;DR + +You have **three serious options**, and you should probably try the first one before building anything: + +1. **Use Anthropic's official Claude mobile app + Remote Control** (no fork, no code). Ships a polished Android client with a "Remote Control" mode (released Q1 2026) that pairs to your desktop Claude Code session. Requires Claude Max. This is the path of least resistance and the most likely to satisfy 80% of "I want clui on my phone." + +2. **Use [Happy](https://happy.engineering/) as-is** ([repo](https://github.com/slopus/happy), MIT). Open-source 3-component architecture (CLI daemon + relay server + Expo app). Already on Play Store + App Store + web. Ships e2e-encrypted message routing. If you like this UX, fork and rebrand instead of building from scratch. + +3. **Build a clui-mobile companion app** that mirrors clui's UX onto Android. Concrete and finite, but you're competing with Anthropic's own product. Recommended only if you specifically want clui's *pill overlay* UX on the phone (which doesn't transfer well — see below). + +There is **no good path** to running clui's actual Electron app on Android. Electron doesn't target Android; the architecture has to change. + +## What already works + +### Official: Claude Android app + Remote Control + +- **Claude Android app** is on Google Play (`com.anthropic.claude`). General Claude UI. +- **Remote Control** (Q1 2026, Max-only) lets you start a Claude Code task in your desktop terminal, then drive it from your phone or web. The local CLI stays the executor; the phone is a thin remote. +- Architecture: synchronization layer between local CLI and mobile/web client. No daemon you write. +- Limitation: requires the Claude Max plan and an active terminal session on a machine somewhere. +- Verdict: **try this first**. If it covers your need, the rest of this doc is unnecessary. + +### Open-source: Happy ([slopus/happy](https://github.com/slopus/happy)) + +A working blueprint for "clui on mobile." Three components: + +| Component | What it does | Where it runs | +|---|---|---| +| **Happy CLI** | Wraps `claude` / `codex`. Encrypts session events, ships them to relay. | User's desktop | +| **Happy Server** | Encrypted message broker. Sees only opaque blobs. | Hosted (Cloudflare/etc.) | +| **Happy App** | Expo-based client. Decrypts and renders. | iOS, Android, web (one Expo codebase) | + +Stack: TypeScript 95%, Expo for the mobile app, pnpm monorepo, MIT license. The relay protocol is **not publicly documented** but the source is open — readable from `packages/`. + +What this proves: +- The companion-app pattern is viable for this exact problem. +- Expo lets you ship a single codebase to iOS + Android + web. +- E2E encryption with a relay is the right security shape — your code stays on your machine, only encrypted transcripts hit a third-party server. + +### Termux-based: [claude-code-android](https://github.com/ferrumclaudepilgrim/claude-code-android) + +Runs Claude Code **natively on the phone** via [Termux](https://termux.dev/) (a real Linux userspace on Android). Three install paths: native Termux, Ubuntu via `proot-distro` (recommended), or [Android Virtualization Framework](https://source.android.com/docs/core/virtualization) on Pixel 6+ Android 16. Uses the existing terminal UI of Claude Code; no GUI wrapper. + +**Caveat:** `@anthropic-ai/claude-code` 2.1.113+ broke native Termux installs (switched to native binaries with no `android-arm64` build). Use 2.1.112, or the Ubuntu container path. + +This is for users who genuinely want **on-device, offline-capable, no-desktop** Claude Code. Hard to combine with a polished GUI because the Android sandbox makes it tricky for a third-party native app to spawn and pipe a Termux subprocess. Doable but not the ergonomic fit clui has on desktop. + +## Why clui doesn't port directly to Android + +| clui assumption | Android reality | +|---|---| +| Electron runtime | Not supported on Android | +| Spawn `claude` as a child process | Android sandbox prevents arbitrary subprocess execution by GUI apps | +| Transparent overlay window with global hotkey | Android has `SYSTEM_ALERT_WINDOW` permission for floating overlays, but no global hotkey API | +| `~/.claude/projects/` on local FS | Android scoped storage; no equivalent of `$HOME` for arbitrary tool access | +| User has Node + npm + git installed | Phone has none of this unless Termux | +| Tray icon | No equivalent — closest is foreground-service notification | +| Multi-session terminal multiplexing | Possible, but the form factor (one screen, one keyboard) makes multi-tab less valuable | + +**The pill-overlay UX in particular is desktop-only.** On Android the equivalent of "summon a small input over my work" is the keyboard input bar of the active app, or a Bubble (Android 11+ chathead). Bubbles work but they have UX constraints — small footprint, single-purpose. The macOS NSPanel feel doesn't translate. + +So a "clui mobile" can't be a port — it has to be a **rethink**. The two questions to settle before writing any code: + +1. **What problem does it solve that the official Claude app + Remote Control doesn't?** +2. **Does Claude Code execute on the phone (Termux) or on a desktop you connect to (companion model)?** + +## Architectural option A — Companion app (recommended if you build) + +Mobile app pairs to your existing clui Electron desktop app via QR-code → token. clui main process becomes the daemon: it already spawns and manages `claude` subprocesses; it just exposes a websocket-over-relay so the phone can subscribe to one or more sessions. + +``` +┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ +│ clui (desktop) │ websocket │ relay server │ websocket │ clui-mobile │ +│ Electron app │ ──── E2E ─────▶│ (yours or │ ◀──── E2E ──── │ Expo / RN │ +│ │ encrypted │ Cloudflare DO) │ encrypted │ │ +│ spawns `claude` │ │ routes blobs │ │ renders events │ +└──────────────────┘ └──────────────────┘ └──────────────────┘ +``` + +**What changes in clui (desktop):** +- New `src/main/companion/` module. WebSocket client to relay. Pairing flow (QR code in tray menu). +- Sessions become routable: pass through the existing `RunManager` event stream over the wire. +- Permission prompts have to be remoteable — the existing permission server already serves an HTTP UI; the mobile client subscribes to permission events and POSTs decisions back. +- E2E key derivation (libsodium / NaCl). Pairing seeds the symmetric key on both ends. + +**What clui-mobile is:** +- Expo app (TypeScript + React Native). Reuses ~30-40% of clui's renderer components — the Markdown/event/permission rendering — minus the pill chrome. +- Minimum surface: tab list, conversation view, input bar, permission prompts, attachments. +- Hard parts: file attachments (Android scoped storage picker), screenshots (`expo-media-library`), voice (Whisper via `onnxruntime-react-native` is plausible). + +**Effort (rough):** +- Daemon side (clui main): 3-5 days. The `RunManager` stream-json transport is already structured to be tee-able. +- Mobile app: 2-3 weeks. Expo + Expo Router + a state library + reuse the renderer components. +- Relay: 1-2 days using Cloudflare Durable Objects or a simple Node ws server. Or piggyback on an existing relay protocol if you fork Happy. +- E2E crypto: 1 day with libsodium. +- App store submission: 1-2 weeks of intermittent work (review, screenshots, privacy policy). + +**Total:** ~5-7 weeks of focused work for a usable v0.1. + +## Architectural option B — Termux-native Android app + +Wraps a Termux subprocess in a real Android UI. Skip the desktop entirely. + +``` +┌─────────────────────────────────┐ +│ clui-mobile (native Android) │ +│ │ +│ Jetpack Compose UI │ +│ │ │ +│ ▼ │ +│ Termux:RUN_COMMAND intent ───▶ │ +│ │ +│ Termux app (separate) │ +│ │ │ +│ ▼ │ +│ `claude` running in Termux │ +└─────────────────────────────────┘ +``` + +**Why it's hard:** +- You can't bundle Claude Code into the APK; the user installs Termux + sets up node + claude separately. +- The app drives Termux via [Termux:RUN_COMMAND](https://wiki.termux.com/wiki/RUN_COMMAND_Intent) intents, but capturing stdout streams in real time is awkward (you'd have to write Termux output to a shared file and tail it). +- Termux is now hostile to non-F-Droid distribution. Your app's setup instructions become a Russian doll. +- The 2.1.113+ native binary break means you depend on community workarounds. + +**Why you might still want it:** offline operation. Genuinely useful if you're on a plane. + +**Effort:** ~3-4 weeks, but most of it is fighting the Termux integration rather than building product. + +## Architectural option C — PWA / web client + +A web app that talks to clui-desktop's existing local HTTP server (the permission server already exists). Use Tailscale or ngrok or Cloudflare Tunnel to expose your desktop's port to your phone. + +**Pros:** zero app-store friction, no native code, nothing to build beyond a single React app. +**Cons:** no native overlay UX, no push notifications without PWA gymnastics, depends on a tunnel, not really a "fork" — more a project of its own. + +**Verdict:** worth a weekend to prototype. Not a real Android product. + +## Recommended path + +Sequenced from least to most work: + +1. **Install Anthropic's Claude Android app** ([Play Store link](https://play.google.com/store/apps/details?id=com.anthropic.claude)) and try Remote Control if you have Max. Stop here if it works. +2. **Install Happy** (`npm i -g happy && happy`, then download the [Happy Android app](https://play.google.com/store/apps/details?id=com.ex3ndr.happy)). It's already what you'd build. If the UX is close enough, fork Happy + rebrand, don't reinvent. +3. **If neither suffices** — start the companion app fork (Option A). Build it as a separate repo (`clui-mobile`) and treat the desktop clui's daemon shim as a Phase 10+ addition to this fork. + +Skip Termux-native (Option B) unless your hard requirement is offline. Skip PWA (Option C) unless you want a one-weekend hack. + +## Tech stack if you build (Option A) + +- **Mobile UI:** [Expo](https://expo.dev/) + React Native. Same TypeScript + React skill set as clui's renderer. Single codebase for Android + iOS + web. +- **Mobile rendering:** Reuse clui's `ConversationView`, `PermissionCard`, etc. Replace `framer-motion` with `react-native-reanimated`, `@phosphor-icons/react` with `@phosphor-icons/react-native`. +- **State:** Zustand works in RN unchanged. +- **Markdown:** [`react-native-markdown-display`](https://github.com/iamacup/react-native-markdown-display) replaces `react-markdown`. +- **Crypto:** [`libsodium-jsi`](https://github.com/margelo/libsodium-jsi) for hardware-accelerated NaCl. +- **Transport:** WebSocket (RN built-in) over a simple relay (Node + `ws`, or Cloudflare Durable Objects). +- **Pairing:** `expo-camera` for QR scan; clui-desktop tray menu shows the QR. +- **Notifications:** `expo-notifications` for "Claude needs your approval" pushes. +- **Build:** EAS Build for Android `.apk`/`.aab`. +- **Distribution:** Play Store closed beta → public. + +## Open questions for the user + +These should be answered before any code lands: + +1. **Is your Claude plan Max?** If yes, Anthropic's Remote Control may already do this. If no, official Remote Control isn't an option and Happy / a fork is your only path. +2. **Does clui's desktop session need to be running for the phone to work?** (Companion model says yes.) Or do you want a self-contained on-phone experience? (Termux model.) +3. **Does the phone need to send code edits, or just chat with Claude?** (Pure chat is much simpler — no scoped-storage file picker work.) +4. **iOS too, or Android only?** Expo gives both for free; the question is whether the App Store review / annual cert is worth the cost. +5. **Hosted relay or self-hosted?** A trusted-third-party relay simplifies onboarding but you become responsible for it. Cloudflare Durable Objects scales free for personal use. + +## Sources + +- [Sealos: Claude Code Mobile guide (2026)](https://sealos.io/blog/claude-code-on-phone/) +- [Happy mobile client homepage](https://happy.engineering/) +- [slopus/happy on GitHub](https://github.com/slopus/happy) +- [VentureBeat: Anthropic releases mobile Remote Control for Claude Code](https://venturebeat.com/orchestration/anthropic-just-released-a-mobile-version-of-claude-code-called-remote) +- [Claude Android app blog post](https://claude.com/blog/android-app) +- [Claude Android app on Google Play](https://play.google.com/store/apps/details?id=com.anthropic.claude) +- [ferrumclaudepilgrim/claude-code-android](https://github.com/ferrumclaudepilgrim/claude-code-android) +- [Ishabdullah/claude-code-termux (workaround for 2.1.113+ break)](https://github.com/Ishabdullah/claude-code-termux) +- [Claude Code headless / programmatic docs](https://code.claude.com/docs/en/headless) +- [Claude Agent SDK quickstart](https://platform.claude.com/docs/en/agent-sdk/quickstart) +- [Termux:RUN_COMMAND intent docs](https://wiki.termux.com/wiki/RUN_COMMAND_Intent) diff --git a/docs/WINDOWS.md b/docs/WINDOWS.md new file mode 100644 index 0000000..3d76be0 --- /dev/null +++ b/docs/WINDOWS.md @@ -0,0 +1,91 @@ +# Clui on Windows + +This is the living document for the Windows fork. Upstream clui is macOS-only; this branch (`windows-support`) ports it to Windows 11 native (no WSL required). + +## Status + +| Phase | Description | Status | +|-------|-------------|--------| +| 0 | Fork hygiene (branch, metadata, docs) | done | +| 1 | Dev environment runs on Windows (`npm install`, `npm run dev`) | done | +| 2 | Real Claude binary discovery + PATH bootstrap + cmd.exe wrapping + taskkill /T + Node-native skill installer | done | +| 3 | Overlay UX parity (transparency, always-on-top, virtual desktops) | done — defaults already cross-platform | +| 4 | Tray icon, `.ico` generation, JumpList, Ctrl+Alt+C hotkey, AppUserModelId | done | +| 5 | electron-builder `win` block, NSIS + portable installer | done | +| 6 | winget + scoop manifests with placeholders | done — fill in `` and submit | +| 7 | CI matrix incl. `windows-latest` (release.yml + new ci.yml) | done | +| 8 | PowerShell `setup.ps1` / `doctor.ps1`, README install docs | done | +| 9 | (deferred) `desktopCapturer` screenshot, native Windows terminal-app discovery | not started | + +## Dev setup (Phase 1) + +```powershell +git clone https://github.com//clui +cd clui +git checkout windows-support +npm install +npm run dev +``` + +`npm install` will print a non-fatal warning if Visual Studio Build Tools aren't present: + +``` +postinstall: electron-builder install-app-deps reported a failure +(typically node-pty needs Visual Studio Build Tools to recompile). +``` + +This is expected without VS Build Tools and is harmless: the default `RunManager` (stream-json transport over stdio) doesn't use node-pty. The interactive PTY transport (`PtyRunManager`) is gated behind the `CLUI_INTERACTIVE_PERMISSIONS_PTY` env var. + +## Enabling PTY mode on Windows + +PTY mode requires a working `node-pty` binary built against Electron's V8 ABI. To get one: + +**Install [Visual Studio Build Tools](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022)** with the **"Desktop development with C++"** workload (includes MSVC + Windows 10/11 SDK). + + - VS 2022 (v17), VS 2026 (v18) Build Tools — both supported by this fork. + - VS 2026 (v18) needs node-gyp's VS detection patched (we ship `patches/node-gyp+11.5.0.patch` which adds VS 18 → toolset v145 mapping; auto-applied via `patch-package` on every `npm install`). + - node-pty 1.1.0's `binding.gyp` opts into Spectre-mitigated libraries, which require an extra VS component most users don't have. We ship `patches/node-pty+1.1.0.patch` that disables Spectre mitigation — node-pty still ships SSP/CFG hardening via the other compiler flags. + +After installing Build Tools, run `npm install` again. The `postinstall` hook applies the patches, and `electron-rebuild` compiles `node-pty` against Electron 35's V8 ABI. The build artifacts land in `node_modules/node-pty/build/Release/` and `prebuilds/win32-x64/`. + +To enable PTY mode at runtime, set the env var before launching: + +```powershell +$env:CLUI_INTERACTIVE_PERMISSIONS_PTY = "1" +npm run dev +``` + +## Current limitations on Windows (Phase 1) + +- Claude binary discovery is hardcoded to `%APPDATA%\npm\claude.cmd`. If your install lives elsewhere (Volta, nvm-windows, custom npm prefix), prompts won't reach Claude until Phase 2. +- `getCliPath()` returns the inherited `process.env.PATH` unchanged. No login-shell PATH enrichment (Windows has no login shell concept). +- The default global hotkey is `Ctrl+Alt+C` ("C for Clui"). `Alt+Space` is reserved by Windows for the title-bar context menu, and `Ctrl+Alt+Space` is Anthropic's Claude Desktop default — `Ctrl+Alt+C` avoids both. Fallback: `Ctrl+Shift+K`. +- The "Open in terminal" picker shows a single "Automatic" option (per-app discovery uses macOS-only `/usr/bin/plutil` + `/Applications`). The Automatic launch path works — it opens Windows Terminal (`wt.exe`) at the project path, falling back to `cmd.exe`. +- The screenshot button captures the **full screen of the display under your cursor** via `desktopCapturer`. There is no interactive crop selection yet (deferred — would require a renderer-side selection overlay). Crop in your image editor afterward, or paste into Claude as-is. +- Voice input via `@huggingface/transformers` ONNX is cross-platform and works. The `whisper-cli` shell-out fallback is dead code on Windows. +- Skill installer shells out `curl | tar` with bash globs. cmd.exe doesn't expand the globs the same way. Will be replaced with Node-native fetch + `tar` package in Phase 2. +- Tray icon uses `trayTemplate.png` (macOS template image) on all platforms — Windows will render it but as a flat colored dot. Phase 4 ships a real `tray.ico`. +- App icon falls back to `icon.png` on Windows (Electron ignores `.icns`). Phase 4 generates `icon.ico`. + +## Hotkey rebinding + +Currently hardcoded to `Ctrl+Alt+C`. A user-facing settings file under `app.getPath('userData')` is planned for a future phase. To rebind locally, edit `src/main/index.ts` and restart `npm run dev`. + +## Tray icon hidden in Win11 overflow + +Win11 hides new tray icons in the "Show hidden icons" overflow menu by default. To pin the Clui tray icon to the visible area: + +1. Click the chevron `^` in the system tray +2. Drag the Clui icon into the always-visible portion of the tray + +## SmartScreen warning on first install + +The Phase 5 NSIS installer will be unsigned for v0.1. On first launch you'll see: + +> Windows protected your PC + +Click **More info** → **Run anyway**. SmartScreen reputation accumulates after enough downloads; the warning will disappear over time (or when an EV code-signing certificate is added in a later phase). + +## Reporting Windows-specific issues + +Open an issue with the `[windows]` tag and include the output of `scripts/doctor.ps1` (once Phase 8 lands). diff --git a/patches/node-gyp+11.5.0.patch b/patches/node-gyp+11.5.0.patch new file mode 100644 index 0000000..b488d70 --- /dev/null +++ b/patches/node-gyp+11.5.0.patch @@ -0,0 +1,135 @@ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSNew.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSNew.cpython-314.pyc +new file mode 100644 +index 0000000..e2d7afc +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSNew.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSProject.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSProject.cpython-314.pyc +new file mode 100644 +index 0000000..694014f +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSProject.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSSettings.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSSettings.cpython-314.pyc +new file mode 100644 +index 0000000..4ce83fe +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSSettings.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSToolFile.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSToolFile.cpython-314.pyc +new file mode 100644 +index 0000000..0c49e5e +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSToolFile.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSUserFile.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSUserFile.cpython-314.pyc +new file mode 100644 +index 0000000..1d26bb3 +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSUserFile.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSUtil.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSUtil.cpython-314.pyc +new file mode 100644 +index 0000000..f8845ce +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSUtil.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSVersion.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSVersion.cpython-314.pyc +new file mode 100644 +index 0000000..14f5ae1 +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/MSVSVersion.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/__init__.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/__init__.cpython-314.pyc +new file mode 100644 +index 0000000..3bddaa2 +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/__init__.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/common.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/common.cpython-314.pyc +new file mode 100644 +index 0000000..9496a6e +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/common.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/easy_xml.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/easy_xml.cpython-314.pyc +new file mode 100644 +index 0000000..034146f +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/easy_xml.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/input.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/input.cpython-314.pyc +new file mode 100644 +index 0000000..a640c6e +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/input.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/msvs_emulation.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/msvs_emulation.cpython-314.pyc +new file mode 100644 +index 0000000..0aa0a28 +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/msvs_emulation.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/ninja_syntax.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/ninja_syntax.cpython-314.pyc +new file mode 100644 +index 0000000..f3b2c5a +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/ninja_syntax.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/simple_copy.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/simple_copy.cpython-314.pyc +new file mode 100644 +index 0000000..2b0b700 +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/simple_copy.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcode_emulation.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcode_emulation.cpython-314.pyc +new file mode 100644 +index 0000000..645d1a9 +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/__pycache__/xcode_emulation.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/__init__.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/__init__.cpython-314.pyc +new file mode 100644 +index 0000000..8a2b2e0 +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/__init__.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/msvs.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/msvs.cpython-314.pyc +new file mode 100644 +index 0000000..f821df7 +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/msvs.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/ninja.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/ninja.cpython-314.pyc +new file mode 100644 +index 0000000..ed0832c +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/gyp/generator/__pycache__/ninja.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/packaging/__pycache__/__init__.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/packaging/__pycache__/__init__.cpython-314.pyc +new file mode 100644 +index 0000000..f9f5cf1 +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/packaging/__pycache__/__init__.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/packaging/__pycache__/_structures.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/packaging/__pycache__/_structures.cpython-314.pyc +new file mode 100644 +index 0000000..84008f7 +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/packaging/__pycache__/_structures.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/gyp/pylib/packaging/__pycache__/version.cpython-314.pyc b/node_modules/node-gyp/gyp/pylib/packaging/__pycache__/version.cpython-314.pyc +new file mode 100644 +index 0000000..9a2d308 +Binary files /dev/null and b/node_modules/node-gyp/gyp/pylib/packaging/__pycache__/version.cpython-314.pyc differ +diff --git a/node_modules/node-gyp/lib/find-visualstudio.js b/node_modules/node-gyp/lib/find-visualstudio.js +index e9aa7fa..e0cf383 100644 +--- a/node_modules/node-gyp/lib/find-visualstudio.js ++++ b/node_modules/node-gyp/lib/find-visualstudio.js +@@ -119,7 +119,7 @@ class VisualStudioFinder { + } + + async findVisualStudio2019OrNewerFromSpecifiedLocation () { +- return this.findVSFromSpecifiedLocation([2019, 2022]) ++ return this.findVSFromSpecifiedLocation([2019, 2022, 2026]) + } + + async findVisualStudio2017FromSpecifiedLocation () { +@@ -162,7 +162,7 @@ class VisualStudioFinder { + } + + async findVisualStudio2019OrNewerUsingSetupModule () { +- return this.findNewVSUsingSetupModule([2019, 2022]) ++ return this.findNewVSUsingSetupModule([2019, 2022, 2026]) + } + + async findVisualStudio2017UsingSetupModule () { +@@ -223,7 +223,7 @@ class VisualStudioFinder { + // Invoke the PowerShell script to get information about Visual Studio 2019 + // or newer installations + async findVisualStudio2019OrNewer () { +- return this.findNewVS([2019, 2022]) ++ return this.findNewVS([2019, 2022, 2026]) + } + + // Invoke the PowerShell script to get information about Visual Studio 2017 +@@ -389,6 +389,10 @@ class VisualStudioFinder { + ret.versionYear = 2022 + return ret + } ++ if (ret.versionMajor === 18) { ++ ret.versionYear = 2026 ++ return ret ++ } + this.log.silly('- unsupported version:', ret.versionMajor) + return {} + } +@@ -456,6 +460,8 @@ class VisualStudioFinder { + return 'v142' + } else if (versionYear === 2022) { + return 'v143' ++ } else if (versionYear === 2026) { ++ return 'v145' + } + this.log.silly('- invalid versionYear:', versionYear) + return null diff --git a/patches/node-pty+1.1.0.patch b/patches/node-pty+1.1.0.patch new file mode 100644 index 0000000..881c4a8 --- /dev/null +++ b/patches/node-pty+1.1.0.patch @@ -0,0 +1,6908 @@ +diff --git a/node_modules/node-pty/bin/win32-x64-133/node-pty.node b/node_modules/node-pty/bin/win32-x64-133/node-pty.node +new file mode 100644 +index 0000000..52e4363 +Binary files /dev/null and b/node_modules/node-pty/bin/win32-x64-133/node-pty.node differ +diff --git a/node_modules/node-pty/binding.gyp b/node_modules/node-pty/binding.gyp +index 5f63978..4a9f6c5 100644 +--- a/node_modules/node-pty/binding.gyp ++++ b/node_modules/node-pty/binding.gyp +@@ -6,7 +6,7 @@ + 'conditions': [ + ['OS=="win"', { + 'msvs_configuration_attributes': { +- 'SpectreMitigation': 'Spectre' ++ 'SpectreMitigation': 'false' + }, + 'msvs_settings': { + 'VCCLCompilerTool': { +diff --git a/node_modules/node-pty/build/Release/.forge-meta b/node_modules/node-pty/build/Release/.forge-meta +new file mode 100644 +index 0000000..ec11777 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/.forge-meta +@@ -0,0 +1 @@ ++x64--133 +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/conpty.exp b/node_modules/node-pty/build/Release/conpty.exp +new file mode 100644 +index 0000000..4fc6308 +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty.exp differ +diff --git a/node_modules/node-pty/build/Release/conpty.iobj b/node_modules/node-pty/build/Release/conpty.iobj +new file mode 100644 +index 0000000..3444747 +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty.iobj differ +diff --git a/node_modules/node-pty/build/Release/conpty.ipdb b/node_modules/node-pty/build/Release/conpty.ipdb +new file mode 100644 +index 0000000..73b5891 +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty.ipdb differ +diff --git a/node_modules/node-pty/build/Release/conpty.lib b/node_modules/node-pty/build/Release/conpty.lib +new file mode 100644 +index 0000000..e896741 +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty.lib differ +diff --git a/node_modules/node-pty/build/Release/conpty.node b/node_modules/node-pty/build/Release/conpty.node +new file mode 100644 +index 0000000..52e4363 +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty.node differ +diff --git a/node_modules/node-pty/build/Release/conpty.pdb b/node_modules/node-pty/build/Release/conpty.pdb +new file mode 100644 +index 0000000..83bdd39 +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty.pdb differ +diff --git a/node_modules/node-pty/build/Release/conpty/OpenConsole.exe b/node_modules/node-pty/build/Release/conpty/OpenConsole.exe +deleted file mode 100644 +index 3db2193..0000000 +Binary files a/node_modules/node-pty/build/Release/conpty/OpenConsole.exe and /dev/null differ +diff --git a/node_modules/node-pty/build/Release/conpty/conpty.dll b/node_modules/node-pty/build/Release/conpty/conpty.dll +deleted file mode 100644 +index eb66b16..0000000 +Binary files a/node_modules/node-pty/build/Release/conpty/conpty.dll and /dev/null differ +diff --git a/node_modules/node-pty/build/Release/conpty_console_list.exp b/node_modules/node-pty/build/Release/conpty_console_list.exp +new file mode 100644 +index 0000000..f7d19b5 +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty_console_list.exp differ +diff --git a/node_modules/node-pty/build/Release/conpty_console_list.iobj b/node_modules/node-pty/build/Release/conpty_console_list.iobj +new file mode 100644 +index 0000000..63f3760 +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty_console_list.iobj differ +diff --git a/node_modules/node-pty/build/Release/conpty_console_list.ipdb b/node_modules/node-pty/build/Release/conpty_console_list.ipdb +new file mode 100644 +index 0000000..2d130db +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty_console_list.ipdb differ +diff --git a/node_modules/node-pty/build/Release/conpty_console_list.lib b/node_modules/node-pty/build/Release/conpty_console_list.lib +new file mode 100644 +index 0000000..665df76 +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty_console_list.lib differ +diff --git a/node_modules/node-pty/build/Release/conpty_console_list.node b/node_modules/node-pty/build/Release/conpty_console_list.node +new file mode 100644 +index 0000000..e4a8828 +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty_console_list.node differ +diff --git a/node_modules/node-pty/build/Release/conpty_console_list.pdb b/node_modules/node-pty/build/Release/conpty_console_list.pdb +new file mode 100644 +index 0000000..d2a48f7 +Binary files /dev/null and b/node_modules/node-pty/build/Release/conpty_console_list.pdb differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty/conpty.node.recipe b/node_modules/node-pty/build/Release/obj/conpty/conpty.node.recipe +new file mode 100644 +index 0000000..c98874a +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty/conpty.node.recipe +@@ -0,0 +1,14 @@ ++ ++ ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\node_addon_api_except ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\conpty.node ++ ++ ++ ++ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/CL.command.1.tlog b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/CL.command.1.tlog +new file mode 100644 +index 0000000..d09d3aa +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/CL.command.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/CL.read.1.tlog b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/CL.read.1.tlog +new file mode 100644 +index 0000000..47d2094 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/CL.read.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/CL.write.1.tlog b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/CL.write.1.tlog +new file mode 100644 +index 0000000..b40c02a +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/CL.write.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/Cl.items.tlog b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/Cl.items.tlog +new file mode 100644 +index 0000000..4c33b42 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/Cl.items.tlog +@@ -0,0 +1,3 @@ ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\src\win\conpty.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\obj\conpty\src\win\conpty.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\src\win\path_util.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\obj\conpty\src\win\path_util.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src\win_delay_load_hook.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\obj\conpty\win_delay_load_hook.obj +diff --git a/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/conpty.lastbuildstate b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/conpty.lastbuildstate +new file mode 100644 +index 0000000..b3017b9 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/conpty.lastbuildstate +@@ -0,0 +1,2 @@ ++PlatformToolSet=v145:VCToolArchitecture=Native64Bit:VCToolsVersion=14.50.35717:VCServicingVersionCompilers=14.50.35730:TargetPlatformVersion=10.0.26100.0: ++Release|x64|C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\| +diff --git a/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.command.1.tlog b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.command.1.tlog +new file mode 100644 +index 0000000..9285127 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.command.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.read.1.tlog b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.read.1.tlog +new file mode 100644 +index 0000000..cdd9053 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.read.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.secondary.1.tlog b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.secondary.1.tlog +new file mode 100644 +index 0000000..40c4a74 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.secondary.1.tlog +@@ -0,0 +1,5 @@ ++^C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\RELEASE\OBJ\CONPTY\SRC\WIN\CONPTY.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\RELEASE\OBJ\CONPTY\SRC\WIN\PATH_UTIL.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\RELEASE\OBJ\CONPTY\WIN_DELAY_LOAD_HOOK.OBJ ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\conpty.LIB ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\conpty.EXP ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\conpty.IPDB ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\conpty.IOBJ +diff --git a/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.write.1.tlog b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.write.1.tlog +new file mode 100644 +index 0000000..7f59b04 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty/conpty.tlog/link.write.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty/src/win/conpty.nativecodeanalysis.xml b/node_modules/node-pty/build/Release/obj/conpty/src/win/conpty.nativecodeanalysis.xml +new file mode 100644 +index 0000000..dcdf088 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty/src/win/conpty.nativecodeanalysis.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/obj/conpty/src/win/conpty.obj b/node_modules/node-pty/build/Release/obj/conpty/src/win/conpty.obj +new file mode 100644 +index 0000000..73db97c +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty/src/win/conpty.obj differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty/src/win/path_util.nativecodeanalysis.xml b/node_modules/node-pty/build/Release/obj/conpty/src/win/path_util.nativecodeanalysis.xml +new file mode 100644 +index 0000000..dcdf088 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty/src/win/path_util.nativecodeanalysis.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/obj/conpty/src/win/path_util.obj b/node_modules/node-pty/build/Release/obj/conpty/src/win/path_util.obj +new file mode 100644 +index 0000000..60d471c +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty/src/win/path_util.obj differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty/win_delay_load_hook.nativecodeanalysis.xml b/node_modules/node-pty/build/Release/obj/conpty/win_delay_load_hook.nativecodeanalysis.xml +new file mode 100644 +index 0000000..dcdf088 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty/win_delay_load_hook.nativecodeanalysis.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/obj/conpty/win_delay_load_hook.obj b/node_modules/node-pty/build/Release/obj/conpty/win_delay_load_hook.obj +new file mode 100644 +index 0000000..6b81697 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty/win_delay_load_hook.obj differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/CL.command.1.tlog b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/CL.command.1.tlog +new file mode 100644 +index 0000000..3f200da +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/CL.command.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/CL.read.1.tlog b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/CL.read.1.tlog +new file mode 100644 +index 0000000..fa08188 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/CL.read.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/CL.write.1.tlog b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/CL.write.1.tlog +new file mode 100644 +index 0000000..33bde18 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/CL.write.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/Cl.items.tlog b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/Cl.items.tlog +new file mode 100644 +index 0000000..5577991 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/Cl.items.tlog +@@ -0,0 +1,2 @@ ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\src\win\conpty_console_list.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\obj\conpty_console_list\src\win\conpty_console_list.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src\win_delay_load_hook.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\obj\conpty_console_list\win_delay_load_hook.obj +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/conpty_console_list.lastbuildstate b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/conpty_console_list.lastbuildstate +new file mode 100644 +index 0000000..b3017b9 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/conpty_console_list.lastbuildstate +@@ -0,0 +1,2 @@ ++PlatformToolSet=v145:VCToolArchitecture=Native64Bit:VCToolsVersion=14.50.35717:VCServicingVersionCompilers=14.50.35730:TargetPlatformVersion=10.0.26100.0: ++Release|x64|C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\| +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.command.1.tlog b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.command.1.tlog +new file mode 100644 +index 0000000..0991962 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.command.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.read.1.tlog b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.read.1.tlog +new file mode 100644 +index 0000000..5f8c769 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.read.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.secondary.1.tlog b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.secondary.1.tlog +new file mode 100644 +index 0000000..aaeacd8 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.secondary.1.tlog +@@ -0,0 +1,5 @@ ++^C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\RELEASE\OBJ\CONPTY_CONSOLE_LIST\SRC\WIN\CONPTY_CONSOLE_LIST.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\RELEASE\OBJ\CONPTY_CONSOLE_LIST\WIN_DELAY_LOAD_HOOK.OBJ ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\conpty_console_list.LIB ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\conpty_console_list.EXP ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\conpty_console_list.IPDB ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\conpty_console_list.IOBJ +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.write.1.tlog b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.write.1.tlog +new file mode 100644 +index 0000000..06c6e61 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_c.B9479456.tlog/link.write.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_console_list.node.recipe b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_console_list.node.recipe +new file mode 100644 +index 0000000..d0f9c8a +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty_console_list/conpty_console_list.node.recipe +@@ -0,0 +1,14 @@ ++ ++ ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\node_addon_api_except ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\conpty_console_list.node ++ ++ ++ ++ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/src/win/conpty_console_list.nativecodeanalysis.xml b/node_modules/node-pty/build/Release/obj/conpty_console_list/src/win/conpty_console_list.nativecodeanalysis.xml +new file mode 100644 +index 0000000..dcdf088 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty_console_list/src/win/conpty_console_list.nativecodeanalysis.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/src/win/conpty_console_list.obj b/node_modules/node-pty/build/Release/obj/conpty_console_list/src/win/conpty_console_list.obj +new file mode 100644 +index 0000000..e7ba040 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty_console_list/src/win/conpty_console_list.obj differ +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/win_delay_load_hook.nativecodeanalysis.xml b/node_modules/node-pty/build/Release/obj/conpty_console_list/win_delay_load_hook.nativecodeanalysis.xml +new file mode 100644 +index 0000000..dcdf088 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/conpty_console_list/win_delay_load_hook.nativecodeanalysis.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/obj/conpty_console_list/win_delay_load_hook.obj b/node_modules/node-pty/build/Release/obj/conpty_console_list/win_delay_load_hook.obj +new file mode 100644 +index 0000000..90cc46f +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/conpty_console_list/win_delay_load_hook.obj differ +diff --git a/node_modules/node-pty/build/Release/obj/pty/pty.node.recipe b/node_modules/node-pty/build/Release/obj/pty/pty.node.recipe +new file mode 100644 +index 0000000..35d4931 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/pty/pty.node.recipe +@@ -0,0 +1,20 @@ ++ ++ ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\node_addon_api_except ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\winpty-agent.exe ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\winpty.dll ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\pty.node ++ ++ ++ ++ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/obj/pty/pty.tlog/CL.command.1.tlog b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/CL.command.1.tlog +new file mode 100644 +index 0000000..bc5d16e +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/CL.command.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/pty/pty.tlog/CL.read.1.tlog b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/CL.read.1.tlog +new file mode 100644 +index 0000000..14dddc2 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/CL.read.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/pty/pty.tlog/CL.write.1.tlog b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/CL.write.1.tlog +new file mode 100644 +index 0000000..fdd0ae9 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/CL.write.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/pty/pty.tlog/Cl.items.tlog b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/Cl.items.tlog +new file mode 100644 +index 0000000..1160436 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/Cl.items.tlog +@@ -0,0 +1,3 @@ ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\src\win\winpty.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\obj\pty\src\win\winpty.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\src\win\path_util.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\obj\pty\src\win\path_util.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src\win_delay_load_hook.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\obj\pty\win_delay_load_hook.obj +diff --git a/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.command.1.tlog b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.command.1.tlog +new file mode 100644 +index 0000000..9cc99ca +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.command.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.read.1.tlog b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.read.1.tlog +new file mode 100644 +index 0000000..b67169a +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.read.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.secondary.1.tlog b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.secondary.1.tlog +new file mode 100644 +index 0000000..887f3c8 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.secondary.1.tlog +@@ -0,0 +1,5 @@ ++^C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\RELEASE\OBJ\PTY\SRC\WIN\PATH_UTIL.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\RELEASE\OBJ\PTY\SRC\WIN\WINPTY.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\RELEASE\OBJ\PTY\WIN_DELAY_LOAD_HOOK.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\RELEASE\WINPTY.LIB ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\pty.LIB ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\pty.EXP ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\pty.IPDB ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\pty.IOBJ +diff --git a/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.write.1.tlog b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.write.1.tlog +new file mode 100644 +index 0000000..f908a09 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/link.write.1.tlog differ +diff --git a/node_modules/node-pty/build/Release/obj/pty/pty.tlog/pty.lastbuildstate b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/pty.lastbuildstate +new file mode 100644 +index 0000000..b3017b9 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/pty/pty.tlog/pty.lastbuildstate +@@ -0,0 +1,2 @@ ++PlatformToolSet=v145:VCToolArchitecture=Native64Bit:VCToolsVersion=14.50.35717:VCServicingVersionCompilers=14.50.35730:TargetPlatformVersion=10.0.26100.0: ++Release|x64|C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\| +diff --git a/node_modules/node-pty/build/Release/obj/pty/src/win/path_util.nativecodeanalysis.xml b/node_modules/node-pty/build/Release/obj/pty/src/win/path_util.nativecodeanalysis.xml +new file mode 100644 +index 0000000..dcdf088 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/pty/src/win/path_util.nativecodeanalysis.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/obj/pty/src/win/path_util.obj b/node_modules/node-pty/build/Release/obj/pty/src/win/path_util.obj +new file mode 100644 +index 0000000..4936b3e +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/pty/src/win/path_util.obj differ +diff --git a/node_modules/node-pty/build/Release/obj/pty/src/win/winpty.nativecodeanalysis.xml b/node_modules/node-pty/build/Release/obj/pty/src/win/winpty.nativecodeanalysis.xml +new file mode 100644 +index 0000000..dcdf088 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/pty/src/win/winpty.nativecodeanalysis.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/obj/pty/src/win/winpty.obj b/node_modules/node-pty/build/Release/obj/pty/src/win/winpty.obj +new file mode 100644 +index 0000000..b06df0b +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/pty/src/win/winpty.obj differ +diff --git a/node_modules/node-pty/build/Release/obj/pty/win_delay_load_hook.nativecodeanalysis.xml b/node_modules/node-pty/build/Release/obj/pty/win_delay_load_hook.nativecodeanalysis.xml +new file mode 100644 +index 0000000..dcdf088 +--- /dev/null ++++ b/node_modules/node-pty/build/Release/obj/pty/win_delay_load_hook.nativecodeanalysis.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/Release/obj/pty/win_delay_load_hook.obj b/node_modules/node-pty/build/Release/obj/pty/win_delay_load_hook.obj +new file mode 100644 +index 0000000..905af54 +Binary files /dev/null and b/node_modules/node-pty/build/Release/obj/pty/win_delay_load_hook.obj differ +diff --git a/node_modules/node-pty/build/Release/pty.exp b/node_modules/node-pty/build/Release/pty.exp +new file mode 100644 +index 0000000..c2d4af4 +Binary files /dev/null and b/node_modules/node-pty/build/Release/pty.exp differ +diff --git a/node_modules/node-pty/build/Release/pty.iobj b/node_modules/node-pty/build/Release/pty.iobj +new file mode 100644 +index 0000000..11c93a2 +Binary files /dev/null and b/node_modules/node-pty/build/Release/pty.iobj differ +diff --git a/node_modules/node-pty/build/Release/pty.ipdb b/node_modules/node-pty/build/Release/pty.ipdb +new file mode 100644 +index 0000000..7a4fa05 +Binary files /dev/null and b/node_modules/node-pty/build/Release/pty.ipdb differ +diff --git a/node_modules/node-pty/build/Release/pty.lib b/node_modules/node-pty/build/Release/pty.lib +new file mode 100644 +index 0000000..819e327 +Binary files /dev/null and b/node_modules/node-pty/build/Release/pty.lib differ +diff --git a/node_modules/node-pty/build/Release/pty.node b/node_modules/node-pty/build/Release/pty.node +new file mode 100644 +index 0000000..6b28d13 +Binary files /dev/null and b/node_modules/node-pty/build/Release/pty.node differ +diff --git a/node_modules/node-pty/build/Release/pty.pdb b/node_modules/node-pty/build/Release/pty.pdb +new file mode 100644 +index 0000000..dc28d2b +Binary files /dev/null and b/node_modules/node-pty/build/Release/pty.pdb differ +diff --git a/node_modules/node-pty/build/Release/winpty-agent.exe b/node_modules/node-pty/build/Release/winpty-agent.exe +new file mode 100644 +index 0000000..fa83558 +Binary files /dev/null and b/node_modules/node-pty/build/Release/winpty-agent.exe differ +diff --git a/node_modules/node-pty/build/Release/winpty-agent.iobj b/node_modules/node-pty/build/Release/winpty-agent.iobj +new file mode 100644 +index 0000000..fb967a9 +Binary files /dev/null and b/node_modules/node-pty/build/Release/winpty-agent.iobj differ +diff --git a/node_modules/node-pty/build/Release/winpty-agent.ipdb b/node_modules/node-pty/build/Release/winpty-agent.ipdb +new file mode 100644 +index 0000000..1f85e4e +Binary files /dev/null and b/node_modules/node-pty/build/Release/winpty-agent.ipdb differ +diff --git a/node_modules/node-pty/build/Release/winpty-agent.pdb b/node_modules/node-pty/build/Release/winpty-agent.pdb +new file mode 100644 +index 0000000..81a4925 +Binary files /dev/null and b/node_modules/node-pty/build/Release/winpty-agent.pdb differ +diff --git a/node_modules/node-pty/build/Release/winpty.dll b/node_modules/node-pty/build/Release/winpty.dll +new file mode 100644 +index 0000000..5fe9372 +Binary files /dev/null and b/node_modules/node-pty/build/Release/winpty.dll differ +diff --git a/node_modules/node-pty/build/Release/winpty.exp b/node_modules/node-pty/build/Release/winpty.exp +new file mode 100644 +index 0000000..ac759f3 +Binary files /dev/null and b/node_modules/node-pty/build/Release/winpty.exp differ +diff --git a/node_modules/node-pty/build/Release/winpty.iobj b/node_modules/node-pty/build/Release/winpty.iobj +new file mode 100644 +index 0000000..a6c0254 +Binary files /dev/null and b/node_modules/node-pty/build/Release/winpty.iobj differ +diff --git a/node_modules/node-pty/build/Release/winpty.ipdb b/node_modules/node-pty/build/Release/winpty.ipdb +new file mode 100644 +index 0000000..7a0623c +Binary files /dev/null and b/node_modules/node-pty/build/Release/winpty.ipdb differ +diff --git a/node_modules/node-pty/build/Release/winpty.lib b/node_modules/node-pty/build/Release/winpty.lib +new file mode 100644 +index 0000000..3bbca23 +Binary files /dev/null and b/node_modules/node-pty/build/Release/winpty.lib differ +diff --git a/node_modules/node-pty/build/Release/winpty.pdb b/node_modules/node-pty/build/Release/winpty.pdb +new file mode 100644 +index 0000000..cb04ce3 +Binary files /dev/null and b/node_modules/node-pty/build/Release/winpty.pdb differ +diff --git a/node_modules/node-pty/build/binding.sln b/node_modules/node-pty/build/binding.sln +new file mode 100644 +index 0000000..473d928 +--- /dev/null ++++ b/node_modules/node-pty/build/binding.sln +@@ -0,0 +1,78 @@ ++Microsoft Visual Studio Solution File, Format Version 12.00 ++# Visual Studio 2015 ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "conpty", "conpty.vcxproj", "{AAE038B3-B10B-1FC8-D9CE-93CC0E7711F0}" ++ ProjectSection(ProjectDependencies) = postProject ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822} = {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822} ++ EndProjectSection ++EndProject ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "conpty_console_list", "conpty_console_list.vcxproj", "{B9479456-3F3B-3FA3-270E-CD2DA654F92E}" ++ ProjectSection(ProjectDependencies) = postProject ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822} = {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822} ++ EndProjectSection ++EndProject ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winpty-agent", "deps\winpty\src\winpty-agent.vcxproj", "{F8003C38-CF95-6428-1CB5-CDD637F3832D}" ++EndProject ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winpty", "deps\winpty\src\winpty.vcxproj", "{13CE013E-AA73-12FD-C0D8-164E6FFFB5EB}" ++EndProject ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "node_addon_api_except", "node_modules\node-addon-api\node_addon_api_except.vcxproj", "{6CE87AED-B40E-DDE2-32D1-2FD3ABC55822}" ++EndProject ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pty", "pty.vcxproj", "{486B7E0C-282F-37BC-8E71-A7C4CD87F786}" ++ ProjectSection(ProjectDependencies) = postProject ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822} = {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822} ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D} = {F8003C38-CF95-6428-1CB5-CDD637F3832D} ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB} = {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB} ++ EndProjectSection ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(deps)", "..\deps", "{01DF18E8-89C6-A25E-0006-40F7C4BCED1B}" ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(winpty)", "..\deps\winpty", "{3CA52295-64D6-1BBE-9F85-ABB56ABA5BC3}" ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(src)", "..\deps\winpty\src", "{E1305904-3510-3622-CC50-AC809363AB06}" ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(node_modules)", "..\node_modules", "{9D350B9E-06FB-960D-859F-B43C9597383A}" ++EndProject ++Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(node-addon-api)", "..\node_modules\node-addon-api", "{AF891C37-E709-9CCC-0D50-0CCCC8CCC563}" ++EndProject ++Global ++ GlobalSection(SolutionConfigurationPlatforms) = preSolution ++ Debug|x64 = Debug|x64 ++ Release|x64 = Release|x64 ++ EndGlobalSection ++ GlobalSection(ProjectConfigurationPlatforms) = postSolution ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB}.Debug|x64.ActiveCfg = Debug|x64 ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB}.Debug|x64.Build.0 = Debug|x64 ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB}.Release|x64.ActiveCfg = Release|x64 ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB}.Release|x64.Build.0 = Release|x64 ++ {486B7E0C-282F-37BC-8E71-A7C4CD87F786}.Debug|x64.ActiveCfg = Debug|x64 ++ {486B7E0C-282F-37BC-8E71-A7C4CD87F786}.Debug|x64.Build.0 = Debug|x64 ++ {486B7E0C-282F-37BC-8E71-A7C4CD87F786}.Release|x64.ActiveCfg = Release|x64 ++ {486B7E0C-282F-37BC-8E71-A7C4CD87F786}.Release|x64.Build.0 = Release|x64 ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822}.Debug|x64.ActiveCfg = Debug|x64 ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822}.Debug|x64.Build.0 = Debug|x64 ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822}.Release|x64.ActiveCfg = Release|x64 ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822}.Release|x64.Build.0 = Release|x64 ++ {AAE038B3-B10B-1FC8-D9CE-93CC0E7711F0}.Debug|x64.ActiveCfg = Debug|x64 ++ {AAE038B3-B10B-1FC8-D9CE-93CC0E7711F0}.Debug|x64.Build.0 = Debug|x64 ++ {AAE038B3-B10B-1FC8-D9CE-93CC0E7711F0}.Release|x64.ActiveCfg = Release|x64 ++ {AAE038B3-B10B-1FC8-D9CE-93CC0E7711F0}.Release|x64.Build.0 = Release|x64 ++ {B9479456-3F3B-3FA3-270E-CD2DA654F92E}.Debug|x64.ActiveCfg = Debug|x64 ++ {B9479456-3F3B-3FA3-270E-CD2DA654F92E}.Debug|x64.Build.0 = Debug|x64 ++ {B9479456-3F3B-3FA3-270E-CD2DA654F92E}.Release|x64.ActiveCfg = Release|x64 ++ {B9479456-3F3B-3FA3-270E-CD2DA654F92E}.Release|x64.Build.0 = Release|x64 ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D}.Debug|x64.ActiveCfg = Debug|x64 ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D}.Debug|x64.Build.0 = Debug|x64 ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D}.Release|x64.ActiveCfg = Release|x64 ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D}.Release|x64.Build.0 = Release|x64 ++ EndGlobalSection ++ GlobalSection(SolutionProperties) = preSolution ++ HideSolutionNode = FALSE ++ EndGlobalSection ++ GlobalSection(NestedProjects) = preSolution ++ {3CA52295-64D6-1BBE-9F85-ABB56ABA5BC3} = {01DF18E8-89C6-A25E-0006-40F7C4BCED1B} ++ {E1305904-3510-3622-CC50-AC809363AB06} = {3CA52295-64D6-1BBE-9F85-ABB56ABA5BC3} ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D} = {E1305904-3510-3622-CC50-AC809363AB06} ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB} = {E1305904-3510-3622-CC50-AC809363AB06} ++ {AF891C37-E709-9CCC-0D50-0CCCC8CCC563} = {9D350B9E-06FB-960D-859F-B43C9597383A} ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822} = {AF891C37-E709-9CCC-0D50-0CCCC8CCC563} ++ EndGlobalSection ++EndGlobal +diff --git a/node_modules/node-pty/build/config.gypi b/node_modules/node-pty/build/config.gypi +new file mode 100644 +index 0000000..12f3e60 +--- /dev/null ++++ b/node_modules/node-pty/build/config.gypi +@@ -0,0 +1,499 @@ ++# Do not edit. File was generated by node-gyp's "configure" step ++{ ++ "target_defaults": { ++ "cflags": [], ++ "configurations": { ++ "Debug": { ++ "v8_enable_v8_checks": 0, ++ "variables": {} ++ }, ++ "Release": { ++ "v8_enable_v8_checks": 1, ++ "variables": {} ++ } ++ }, ++ "default_configuration": "Release", ++ "defines": [], ++ "include_dirs": [], ++ "libraries": [], ++ "msbuild_toolset": "v145", ++ "msvs_windows_target_platform_version": "10.0.26100.0" ++ }, ++ "variables": { ++ "arm_fpu": "neon", ++ "asan": 0, ++ "build_v8_with_gn": "false", ++ "built_with_electron": 1, ++ "control_flow_guard": "false", ++ "coverage": "false", ++ "dcheck_always_on": 0, ++ "debug_nghttp2": "false", ++ "debug_node": "false", ++ "enable_lto": "false", ++ "enable_pgo_generate": "false", ++ "enable_pgo_use": "false", ++ "error_on_warn": "false", ++ "force_dynamic_crt": 0, ++ "host_arch": "x64", ++ "icu_data_in": "..\\..\\deps\\icu-tmp\\icudt77l.dat", ++ "icu_endianness": "l", ++ "icu_gyp_path": "tools/icu/icu-generic.gyp", ++ "icu_path": "deps/icu-small", ++ "icu_small": "false", ++ "icu_ver_major": "77", ++ "libdir": "lib", ++ "llvm_version": "0.0", ++ "napi_build_version": "10", ++ "node_builtin_shareable_builtins": [ ++ "deps/cjs-module-lexer/lexer.js", ++ "deps/cjs-module-lexer/dist/lexer.js", ++ "deps/undici/undici.js", ++ "deps/amaro/dist/index.js" ++ ], ++ "node_byteorder": "little", ++ "node_cctest_sources": [ ++ "src/node_snapshot_stub.cc", ++ "test/cctest/inspector/test_node_protocol.cc", ++ "test/cctest/node_test_fixture.cc", ++ "test/cctest/test_aliased_buffer.cc", ++ "test/cctest/test_base64.cc", ++ "test/cctest/test_base_object_ptr.cc", ++ "test/cctest/test_cppgc.cc", ++ "test/cctest/test_crypto_clienthello.cc", ++ "test/cctest/test_dataqueue.cc", ++ "test/cctest/test_environment.cc", ++ "test/cctest/test_inspector_socket.cc", ++ "test/cctest/test_inspector_socket_server.cc", ++ "test/cctest/test_json_utils.cc", ++ "test/cctest/test_linked_binding.cc", ++ "test/cctest/test_node_api.cc", ++ "test/cctest/test_node_crypto.cc", ++ "test/cctest/test_node_crypto_env.cc", ++ "test/cctest/test_node_postmortem_metadata.cc", ++ "test/cctest/test_node_task_runner.cc", ++ "test/cctest/test_path.cc", ++ "test/cctest/test_per_process.cc", ++ "test/cctest/test_platform.cc", ++ "test/cctest/test_quic_cid.cc", ++ "test/cctest/test_quic_error.cc", ++ "test/cctest/test_quic_tokens.cc", ++ "test/cctest/test_report.cc", ++ "test/cctest/test_sockaddr.cc", ++ "test/cctest/test_traced_value.cc", ++ "test/cctest/test_util.cc", ++ "test/cctest/node_test_fixture.h" ++ ], ++ "node_debug_lib": "false", ++ "node_enable_d8": "false", ++ "node_enable_v8_vtunejit": "false", ++ "node_fipsinstall": "false", ++ "node_install_corepack": "true", ++ "node_install_npm": "true", ++ "node_library_files": [ ++ "lib/_http_agent.js", ++ "lib/_http_client.js", ++ "lib/_http_common.js", ++ "lib/_http_incoming.js", ++ "lib/_http_outgoing.js", ++ "lib/_http_server.js", ++ "lib/_stream_duplex.js", ++ "lib/_stream_passthrough.js", ++ "lib/_stream_readable.js", ++ "lib/_stream_transform.js", ++ "lib/_stream_wrap.js", ++ "lib/_stream_writable.js", ++ "lib/_tls_common.js", ++ "lib/_tls_wrap.js", ++ "lib/assert.js", ++ "lib/assert/strict.js", ++ "lib/async_hooks.js", ++ "lib/buffer.js", ++ "lib/child_process.js", ++ "lib/cluster.js", ++ "lib/console.js", ++ "lib/constants.js", ++ "lib/crypto.js", ++ "lib/dgram.js", ++ "lib/diagnostics_channel.js", ++ "lib/dns.js", ++ "lib/dns/promises.js", ++ "lib/domain.js", ++ "lib/events.js", ++ "lib/fs.js", ++ "lib/fs/promises.js", ++ "lib/http.js", ++ "lib/http2.js", ++ "lib/https.js", ++ "lib/inspector.js", ++ "lib/inspector/promises.js", ++ "lib/internal/abort_controller.js", ++ "lib/internal/assert.js", ++ "lib/internal/assert/assertion_error.js", ++ "lib/internal/assert/calltracker.js", ++ "lib/internal/assert/myers_diff.js", ++ "lib/internal/assert/utils.js", ++ "lib/internal/async_context_frame.js", ++ "lib/internal/async_hooks.js", ++ "lib/internal/async_local_storage/async_context_frame.js", ++ "lib/internal/async_local_storage/async_hooks.js", ++ "lib/internal/blob.js", ++ "lib/internal/blocklist.js", ++ "lib/internal/bootstrap/node.js", ++ "lib/internal/bootstrap/realm.js", ++ "lib/internal/bootstrap/shadow_realm.js", ++ "lib/internal/bootstrap/switches/does_not_own_process_state.js", ++ "lib/internal/bootstrap/switches/does_own_process_state.js", ++ "lib/internal/bootstrap/switches/is_main_thread.js", ++ "lib/internal/bootstrap/switches/is_not_main_thread.js", ++ "lib/internal/bootstrap/web/exposed-wildcard.js", ++ "lib/internal/bootstrap/web/exposed-window-or-worker.js", ++ "lib/internal/buffer.js", ++ "lib/internal/child_process.js", ++ "lib/internal/child_process/serialization.js", ++ "lib/internal/cli_table.js", ++ "lib/internal/cluster/child.js", ++ "lib/internal/cluster/primary.js", ++ "lib/internal/cluster/round_robin_handle.js", ++ "lib/internal/cluster/shared_handle.js", ++ "lib/internal/cluster/utils.js", ++ "lib/internal/cluster/worker.js", ++ "lib/internal/console/constructor.js", ++ "lib/internal/console/global.js", ++ "lib/internal/constants.js", ++ "lib/internal/crypto/aes.js", ++ "lib/internal/crypto/certificate.js", ++ "lib/internal/crypto/cfrg.js", ++ "lib/internal/crypto/cipher.js", ++ "lib/internal/crypto/diffiehellman.js", ++ "lib/internal/crypto/ec.js", ++ "lib/internal/crypto/hash.js", ++ "lib/internal/crypto/hashnames.js", ++ "lib/internal/crypto/hkdf.js", ++ "lib/internal/crypto/keygen.js", ++ "lib/internal/crypto/keys.js", ++ "lib/internal/crypto/mac.js", ++ "lib/internal/crypto/pbkdf2.js", ++ "lib/internal/crypto/random.js", ++ "lib/internal/crypto/rsa.js", ++ "lib/internal/crypto/scrypt.js", ++ "lib/internal/crypto/sig.js", ++ "lib/internal/crypto/util.js", ++ "lib/internal/crypto/webcrypto.js", ++ "lib/internal/crypto/webidl.js", ++ "lib/internal/crypto/x509.js", ++ "lib/internal/data_url.js", ++ "lib/internal/debugger/inspect.js", ++ "lib/internal/debugger/inspect_client.js", ++ "lib/internal/debugger/inspect_repl.js", ++ "lib/internal/dgram.js", ++ "lib/internal/dns/callback_resolver.js", ++ "lib/internal/dns/promises.js", ++ "lib/internal/dns/utils.js", ++ "lib/internal/encoding.js", ++ "lib/internal/error_serdes.js", ++ "lib/internal/errors.js", ++ "lib/internal/event_target.js", ++ "lib/internal/events/abort_listener.js", ++ "lib/internal/events/symbols.js", ++ "lib/internal/file.js", ++ "lib/internal/fixed_queue.js", ++ "lib/internal/freelist.js", ++ "lib/internal/freeze_intrinsics.js", ++ "lib/internal/fs/cp/cp-sync.js", ++ "lib/internal/fs/cp/cp.js", ++ "lib/internal/fs/dir.js", ++ "lib/internal/fs/glob.js", ++ "lib/internal/fs/promises.js", ++ "lib/internal/fs/read/context.js", ++ "lib/internal/fs/recursive_watch.js", ++ "lib/internal/fs/rimraf.js", ++ "lib/internal/fs/streams.js", ++ "lib/internal/fs/sync_write_stream.js", ++ "lib/internal/fs/utils.js", ++ "lib/internal/fs/watchers.js", ++ "lib/internal/heap_utils.js", ++ "lib/internal/histogram.js", ++ "lib/internal/http.js", ++ "lib/internal/http2/compat.js", ++ "lib/internal/http2/core.js", ++ "lib/internal/http2/util.js", ++ "lib/internal/inspector/network.js", ++ "lib/internal/inspector/network_http.js", ++ "lib/internal/inspector/network_undici.js", ++ "lib/internal/inspector_async_hook.js", ++ "lib/internal/inspector_network_tracking.js", ++ "lib/internal/js_stream_socket.js", ++ "lib/internal/legacy/processbinding.js", ++ "lib/internal/linkedlist.js", ++ "lib/internal/main/check_syntax.js", ++ "lib/internal/main/embedding.js", ++ "lib/internal/main/eval_stdin.js", ++ "lib/internal/main/eval_string.js", ++ "lib/internal/main/inspect.js", ++ "lib/internal/main/mksnapshot.js", ++ "lib/internal/main/print_help.js", ++ "lib/internal/main/prof_process.js", ++ "lib/internal/main/repl.js", ++ "lib/internal/main/run_main_module.js", ++ "lib/internal/main/test_runner.js", ++ "lib/internal/main/watch_mode.js", ++ "lib/internal/main/worker_thread.js", ++ "lib/internal/mime.js", ++ "lib/internal/modules/cjs/loader.js", ++ "lib/internal/modules/customization_hooks.js", ++ "lib/internal/modules/esm/assert.js", ++ "lib/internal/modules/esm/create_dynamic_module.js", ++ "lib/internal/modules/esm/formats.js", ++ "lib/internal/modules/esm/get_format.js", ++ "lib/internal/modules/esm/hooks.js", ++ "lib/internal/modules/esm/initialize_import_meta.js", ++ "lib/internal/modules/esm/load.js", ++ "lib/internal/modules/esm/loader.js", ++ "lib/internal/modules/esm/module_job.js", ++ "lib/internal/modules/esm/module_map.js", ++ "lib/internal/modules/esm/resolve.js", ++ "lib/internal/modules/esm/shared_constants.js", ++ "lib/internal/modules/esm/translators.js", ++ "lib/internal/modules/esm/utils.js", ++ "lib/internal/modules/esm/worker.js", ++ "lib/internal/modules/helpers.js", ++ "lib/internal/modules/package_json_reader.js", ++ "lib/internal/modules/run_main.js", ++ "lib/internal/modules/typescript.js", ++ "lib/internal/navigator.js", ++ "lib/internal/net.js", ++ "lib/internal/options.js", ++ "lib/internal/per_context/domexception.js", ++ "lib/internal/per_context/messageport.js", ++ "lib/internal/per_context/primordials.js", ++ "lib/internal/perf/event_loop_delay.js", ++ "lib/internal/perf/event_loop_utilization.js", ++ "lib/internal/perf/nodetiming.js", ++ "lib/internal/perf/observe.js", ++ "lib/internal/perf/performance.js", ++ "lib/internal/perf/performance_entry.js", ++ "lib/internal/perf/resource_timing.js", ++ "lib/internal/perf/timerify.js", ++ "lib/internal/perf/usertiming.js", ++ "lib/internal/perf/utils.js", ++ "lib/internal/priority_queue.js", ++ "lib/internal/process/execution.js", ++ "lib/internal/process/finalization.js", ++ "lib/internal/process/per_thread.js", ++ "lib/internal/process/permission.js", ++ "lib/internal/process/pre_execution.js", ++ "lib/internal/process/promises.js", ++ "lib/internal/process/report.js", ++ "lib/internal/process/signal.js", ++ "lib/internal/process/task_queues.js", ++ "lib/internal/process/warning.js", ++ "lib/internal/process/worker_thread_only.js", ++ "lib/internal/promise_hooks.js", ++ "lib/internal/querystring.js", ++ "lib/internal/quic/quic.js", ++ "lib/internal/quic/state.js", ++ "lib/internal/quic/stats.js", ++ "lib/internal/quic/symbols.js", ++ "lib/internal/readline/callbacks.js", ++ "lib/internal/readline/emitKeypressEvents.js", ++ "lib/internal/readline/interface.js", ++ "lib/internal/readline/promises.js", ++ "lib/internal/readline/utils.js", ++ "lib/internal/repl.js", ++ "lib/internal/repl/await.js", ++ "lib/internal/repl/history.js", ++ "lib/internal/repl/utils.js", ++ "lib/internal/socket_list.js", ++ "lib/internal/socketaddress.js", ++ "lib/internal/source_map/prepare_stack_trace.js", ++ "lib/internal/source_map/source_map.js", ++ "lib/internal/source_map/source_map_cache.js", ++ "lib/internal/source_map/source_map_cache_map.js", ++ "lib/internal/stream_base_commons.js", ++ "lib/internal/streams/add-abort-signal.js", ++ "lib/internal/streams/compose.js", ++ "lib/internal/streams/destroy.js", ++ "lib/internal/streams/duplex.js", ++ "lib/internal/streams/duplexify.js", ++ "lib/internal/streams/duplexpair.js", ++ "lib/internal/streams/end-of-stream.js", ++ "lib/internal/streams/from.js", ++ "lib/internal/streams/lazy_transform.js", ++ "lib/internal/streams/legacy.js", ++ "lib/internal/streams/operators.js", ++ "lib/internal/streams/passthrough.js", ++ "lib/internal/streams/pipeline.js", ++ "lib/internal/streams/readable.js", ++ "lib/internal/streams/state.js", ++ "lib/internal/streams/transform.js", ++ "lib/internal/streams/utils.js", ++ "lib/internal/streams/writable.js", ++ "lib/internal/test/binding.js", ++ "lib/internal/test/transfer.js", ++ "lib/internal/test_runner/assert.js", ++ "lib/internal/test_runner/coverage.js", ++ "lib/internal/test_runner/harness.js", ++ "lib/internal/test_runner/mock/loader.js", ++ "lib/internal/test_runner/mock/mock.js", ++ "lib/internal/test_runner/mock/mock_timers.js", ++ "lib/internal/test_runner/reporter/dot.js", ++ "lib/internal/test_runner/reporter/junit.js", ++ "lib/internal/test_runner/reporter/lcov.js", ++ "lib/internal/test_runner/reporter/spec.js", ++ "lib/internal/test_runner/reporter/tap.js", ++ "lib/internal/test_runner/reporter/utils.js", ++ "lib/internal/test_runner/reporter/v8-serializer.js", ++ "lib/internal/test_runner/runner.js", ++ "lib/internal/test_runner/snapshot.js", ++ "lib/internal/test_runner/test.js", ++ "lib/internal/test_runner/tests_stream.js", ++ "lib/internal/test_runner/utils.js", ++ "lib/internal/timers.js", ++ "lib/internal/tls/secure-context.js", ++ "lib/internal/tls/secure-pair.js", ++ "lib/internal/trace_events_async_hooks.js", ++ "lib/internal/tty.js", ++ "lib/internal/url.js", ++ "lib/internal/util.js", ++ "lib/internal/util/colors.js", ++ "lib/internal/util/comparisons.js", ++ "lib/internal/util/debuglog.js", ++ "lib/internal/util/diff.js", ++ "lib/internal/util/inspect.js", ++ "lib/internal/util/inspector.js", ++ "lib/internal/util/parse_args/parse_args.js", ++ "lib/internal/util/parse_args/utils.js", ++ "lib/internal/util/types.js", ++ "lib/internal/v8/startup_snapshot.js", ++ "lib/internal/v8_prof_polyfill.js", ++ "lib/internal/v8_prof_processor.js", ++ "lib/internal/validators.js", ++ "lib/internal/vm.js", ++ "lib/internal/vm/module.js", ++ "lib/internal/wasm_web_api.js", ++ "lib/internal/watch_mode/files_watcher.js", ++ "lib/internal/watchdog.js", ++ "lib/internal/webidl.js", ++ "lib/internal/webstorage.js", ++ "lib/internal/webstreams/adapters.js", ++ "lib/internal/webstreams/compression.js", ++ "lib/internal/webstreams/encoding.js", ++ "lib/internal/webstreams/queuingstrategies.js", ++ "lib/internal/webstreams/readablestream.js", ++ "lib/internal/webstreams/transfer.js", ++ "lib/internal/webstreams/transformstream.js", ++ "lib/internal/webstreams/util.js", ++ "lib/internal/webstreams/writablestream.js", ++ "lib/internal/worker.js", ++ "lib/internal/worker/io.js", ++ "lib/internal/worker/js_transferable.js", ++ "lib/internal/worker/messaging.js", ++ "lib/module.js", ++ "lib/net.js", ++ "lib/os.js", ++ "lib/path.js", ++ "lib/path/posix.js", ++ "lib/path/win32.js", ++ "lib/perf_hooks.js", ++ "lib/process.js", ++ "lib/punycode.js", ++ "lib/querystring.js", ++ "lib/readline.js", ++ "lib/readline/promises.js", ++ "lib/repl.js", ++ "lib/sea.js", ++ "lib/sqlite.js", ++ "lib/stream.js", ++ "lib/stream/consumers.js", ++ "lib/stream/promises.js", ++ "lib/stream/web.js", ++ "lib/string_decoder.js", ++ "lib/sys.js", ++ "lib/test.js", ++ "lib/test/reporters.js", ++ "lib/timers.js", ++ "lib/timers/promises.js", ++ "lib/tls.js", ++ "lib/trace_events.js", ++ "lib/tty.js", ++ "lib/url.js", ++ "lib/util.js", ++ "lib/util/types.js", ++ "lib/v8.js", ++ "lib/vm.js", ++ "lib/wasi.js", ++ "lib/worker_threads.js", ++ "lib/zlib.js" ++ ], ++ "node_module_version": 133, ++ "node_no_browser_globals": "false", ++ "node_prefix": "\\usr\\local", ++ "node_release_urlbase": "", ++ "node_shared": "false", ++ "node_shared_ada": "false", ++ "node_shared_brotli": "false", ++ "node_shared_cares": "false", ++ "node_shared_http_parser": "false", ++ "node_shared_libuv": "false", ++ "node_shared_nghttp2": "false", ++ "node_shared_nghttp3": "false", ++ "node_shared_ngtcp2": "false", ++ "node_shared_openssl": "false", ++ "node_shared_simdjson": "false", ++ "node_shared_simdutf": "false", ++ "node_shared_sqlite": "false", ++ "node_shared_uvwasi": "false", ++ "node_shared_zlib": "false", ++ "node_shared_zstd": "false", ++ "node_tag": "", ++ "node_target_type": "executable", ++ "node_use_amaro": "true", ++ "node_use_bundled_v8": "true", ++ "node_use_node_code_cache": "false", ++ "node_use_node_snapshot": "false", ++ "node_use_openssl": "true", ++ "node_use_v8_platform": "true", ++ "node_with_ltcg": "true", ++ "node_without_node_options": "false", ++ "node_write_snapshot_as_array_literals": "true", ++ "openssl_is_fips": "false", ++ "openssl_no_asm": 1, ++ "openssl_quic": "false", ++ "ossfuzz": "false", ++ "shlib_suffix": "so.127", ++ "single_executable_application": "true", ++ "suppress_all_error_on_warn": "false", ++ "target_arch": "x64", ++ "ubsan": 0, ++ "use_ccache_win": 0, ++ "use_prefix_to_find_headers": "false", ++ "using_electron_config_gypi": 1, ++ "v8_enable_31bit_smis_on_64bit_arch": 1, ++ "v8_enable_extensible_ro_snapshot": 0, ++ "v8_enable_gdbjit": 0, ++ "v8_enable_hugepage": 0, ++ "v8_enable_i18n_support": 1, ++ "v8_enable_inspector": 1, ++ "v8_enable_javascript_promise_hooks": 1, ++ "v8_enable_lite_mode": 0, ++ "v8_enable_maglev": 0, ++ "v8_enable_object_print": 1, ++ "v8_enable_pointer_compression": 1, ++ "v8_enable_sandbox": 1, ++ "v8_enable_shared_ro_heap": 0, ++ "v8_enable_webassembly": 1, ++ "v8_optimized_debug": 1, ++ "v8_promise_internal_field_count": 1, ++ "v8_random_seed": 0, ++ "v8_trace_maps": 0, ++ "v8_use_siphash": 1, ++ "want_separate_host_toolset": 1, ++ "nodedir": "C:\\Users\\remote\\.electron-gyp\\35.7.5", ++ "python": "C:\\Python314\\python.exe", ++ "standalone_static_library": 1, ++ "msbuild_path": "C:\\Program Files (x86)\\Microsoft Visual Studio\\18\\BuildTools\\MSBuild\\Current\\Bin\\MSBuild.exe", ++ "runtime": "electron", ++ "target": "35.7.5", ++ "build_from_source": "true" ++ } ++} +diff --git a/node_modules/node-pty/build/conpty.vcxproj b/node_modules/node-pty/build/conpty.vcxproj +new file mode 100644 +index 0000000..b587462 +--- /dev/null ++++ b/node_modules/node-pty/build/conpty.vcxproj +@@ -0,0 +1,160 @@ ++ ++ ++ ++ ++ Debug ++ x64 ++ ++ ++ Release ++ x64 ++ ++ ++ ++ {AAE038B3-B10B-1FC8-D9CE-93CC0E7711F0} ++ Win32Proj ++ conpty ++ true ++ x64 ++ 10.0.26100.0 ++ ++ ++ ++ DynamicLibrary ++ false ++ ++ ++ v145 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(ExecutablePath);$(MSBuildProjectDirectory)\..\bin\;$(MSBuildProjectDirectory)\..\bin\ ++ true ++ $(Configuration)\obj\$(ProjectName)\ ++ false ++ true ++ $(SolutionDir)$(Configuration)\ ++ .node ++ .node ++ .node ++ .node ++ $(ProjectName) ++ $(OutDir)\$(ProjectName).node ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ /guard:cf /sdl /W3 /w34244 /w34267 /ZH:SHA_256 /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ EnableFastChecks ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ true ++ Sync ++ false ++ true ++ false ++ Disabled ++ NotUsing ++ NODE_GYP_MODULE_NAME=conpty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions) ++ MultiThreadedDebug ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib";shlwapi.lib ++ /DYNAMICBASE /guard:cf /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName).node ++ true ++ .node ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=conpty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ /guard:cf /sdl /W3 /w34244 /w34267 /ZH:SHA_256 /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ true ++ Sync ++ Speed ++ true ++ AnySuitable ++ true ++ true ++ true ++ Full ++ NotUsing ++ NODE_GYP_MODULE_NAME=conpty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";%(PreprocessorDefinitions) ++ MultiThreaded ++ false ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib";shlwapi.lib ++ /DYNAMICBASE /guard:cf /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName).node ++ true ++ .node ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=conpty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ++ ++ ++ $(IntDir)\src\win\conpty.obj ++ ++ ++ $(IntDir)\src\win\path_util.obj ++ ++ ++ ++ ++ ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822} ++ false ++ ++ ++ ++ ++ ++ +diff --git a/node_modules/node-pty/build/conpty.vcxproj.filters b/node_modules/node-pty/build/conpty.vcxproj.filters +new file mode 100644 +index 0000000..4a51fec +--- /dev/null ++++ b/node_modules/node-pty/build/conpty.vcxproj.filters +@@ -0,0 +1,67 @@ ++ ++ ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {47FC5EC4-15EB-E92F-89D7-AFE51CF838A9} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {47FC5EC4-15EB-E92F-89D7-AFE51CF838A9} ++ ++ ++ {7B735499-E5DD-1C2B-6C26-70023832A1CF} ++ ++ ++ {E9F714C1-DA89-54E2-60CF-39FEB20BF756} ++ ++ ++ {17E7FD5A-7606-4EFA-3702-BB63A4D69084} ++ ++ ++ {87566BA0-CA33-1144-65F5-087C5F9D6C20} ++ ++ ++ {84E6FEBA-825D-6EBF-DAAC-F202DA6E3F7D} ++ ++ ++ {0E3ABA58-3923-DEAA-92E0-59173290502D} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {77348C0E-2034-7791-74D5-63C077DF5A3B} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ ++ ++ ..\src\win ++ ++ ++ ..\src\win ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src ++ ++ ++ .. ++ ++ ++ +diff --git a/node_modules/node-pty/build/conpty_console_list.vcxproj b/node_modules/node-pty/build/conpty_console_list.vcxproj +new file mode 100644 +index 0000000..254af5a +--- /dev/null ++++ b/node_modules/node-pty/build/conpty_console_list.vcxproj +@@ -0,0 +1,157 @@ ++ ++ ++ ++ ++ Debug ++ x64 ++ ++ ++ Release ++ x64 ++ ++ ++ ++ {B9479456-3F3B-3FA3-270E-CD2DA654F92E} ++ Win32Proj ++ conpty_console_list ++ true ++ x64 ++ 10.0.26100.0 ++ ++ ++ ++ DynamicLibrary ++ false ++ ++ ++ v145 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(ExecutablePath);$(MSBuildProjectDirectory)\..\bin\;$(MSBuildProjectDirectory)\..\bin\ ++ true ++ $(Configuration)\obj\$(ProjectName)\ ++ false ++ true ++ $(SolutionDir)$(Configuration)\ ++ .node ++ .node ++ .node ++ .node ++ $(ProjectName) ++ $(OutDir)\$(ProjectName).node ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ /guard:cf /sdl /W3 /w34244 /w34267 /ZH:SHA_256 /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ EnableFastChecks ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ true ++ Sync ++ false ++ true ++ false ++ Disabled ++ NotUsing ++ NODE_GYP_MODULE_NAME=conpty_console_list;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions) ++ MultiThreadedDebug ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib" ++ /DYNAMICBASE /guard:cf /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName).node ++ true ++ .node ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=conpty_console_list;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ /guard:cf /sdl /W3 /w34244 /w34267 /ZH:SHA_256 /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ true ++ Sync ++ Speed ++ true ++ AnySuitable ++ true ++ true ++ true ++ Full ++ NotUsing ++ NODE_GYP_MODULE_NAME=conpty_console_list;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";%(PreprocessorDefinitions) ++ MultiThreaded ++ false ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib" ++ /DYNAMICBASE /guard:cf /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName).node ++ true ++ .node ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=conpty_console_list;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ++ ++ ++ $(IntDir)\src\win\conpty_console_list.obj ++ ++ ++ ++ ++ ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822} ++ false ++ ++ ++ ++ ++ ++ +diff --git a/node_modules/node-pty/build/conpty_console_list.vcxproj.filters b/node_modules/node-pty/build/conpty_console_list.vcxproj.filters +new file mode 100644 +index 0000000..edbff07 +--- /dev/null ++++ b/node_modules/node-pty/build/conpty_console_list.vcxproj.filters +@@ -0,0 +1,55 @@ ++ ++ ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {47FC5EC4-15EB-E92F-89D7-AFE51CF838A9} ++ ++ ++ {7B735499-E5DD-1C2B-6C26-70023832A1CF} ++ ++ ++ {E9F714C1-DA89-54E2-60CF-39FEB20BF756} ++ ++ ++ {17E7FD5A-7606-4EFA-3702-BB63A4D69084} ++ ++ ++ {87566BA0-CA33-1144-65F5-087C5F9D6C20} ++ ++ ++ {84E6FEBA-825D-6EBF-DAAC-F202DA6E3F7D} ++ ++ ++ {0E3ABA58-3923-DEAA-92E0-59173290502D} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {77348C0E-2034-7791-74D5-63C077DF5A3B} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ ++ ++ ..\src\win ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src ++ ++ ++ .. ++ ++ ++ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Agent.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Agent.obj +new file mode 100644 +index 0000000..412dfa1 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Agent.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/AgentCreateDesktop.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/AgentCreateDesktop.obj +new file mode 100644 +index 0000000..b37bcd2 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/AgentCreateDesktop.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleFont.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleFont.obj +new file mode 100644 +index 0000000..7ba1282 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleFont.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleInput.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleInput.obj +new file mode 100644 +index 0000000..31c3221 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleInput.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleInputReencoding.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleInputReencoding.obj +new file mode 100644 +index 0000000..c43c924 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleInputReencoding.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleLine.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleLine.obj +new file mode 100644 +index 0000000..dd39b0d +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/ConsoleLine.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/DebugShowInput.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/DebugShowInput.obj +new file mode 100644 +index 0000000..78e38ee +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/DebugShowInput.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/DefaultInputMap.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/DefaultInputMap.obj +new file mode 100644 +index 0000000..b02f6c9 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/DefaultInputMap.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/EventLoop.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/EventLoop.obj +new file mode 100644 +index 0000000..a990619 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/EventLoop.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/InputMap.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/InputMap.obj +new file mode 100644 +index 0000000..2fe672f +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/InputMap.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/LargeConsoleRead.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/LargeConsoleRead.obj +new file mode 100644 +index 0000000..dd8743c +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/LargeConsoleRead.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/NamedPipe.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/NamedPipe.obj +new file mode 100644 +index 0000000..db737f0 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/NamedPipe.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Scraper.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Scraper.obj +new file mode 100644 +index 0000000..4730d0f +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Scraper.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Terminal.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Terminal.obj +new file mode 100644 +index 0000000..05029f5 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Terminal.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Win32Console.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Win32Console.obj +new file mode 100644 +index 0000000..787cdd3 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Win32Console.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Win32ConsoleBuffer.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Win32ConsoleBuffer.obj +new file mode 100644 +index 0000000..b21aa6a +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/Win32ConsoleBuffer.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/main.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/main.obj +new file mode 100644 +index 0000000..4af8eb1 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/agent/main.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/BackgroundDesktop.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/BackgroundDesktop.obj +new file mode 100644 +index 0000000..94a2db9 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/BackgroundDesktop.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/Buffer.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/Buffer.obj +new file mode 100644 +index 0000000..f74be94 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/Buffer.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/DebugClient.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/DebugClient.obj +new file mode 100644 +index 0000000..8f17490 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/DebugClient.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/GenRandom.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/GenRandom.obj +new file mode 100644 +index 0000000..4d6350a +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/GenRandom.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/OwnedHandle.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/OwnedHandle.obj +new file mode 100644 +index 0000000..039dc81 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/OwnedHandle.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/StringUtil.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/StringUtil.obj +new file mode 100644 +index 0000000..28899ab +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/StringUtil.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WindowsSecurity.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WindowsSecurity.obj +new file mode 100644 +index 0000000..1d02d68 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WindowsSecurity.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WindowsVersion.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WindowsVersion.obj +new file mode 100644 +index 0000000..4d79e2a +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WindowsVersion.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WinptyAssert.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WinptyAssert.obj +new file mode 100644 +index 0000000..54c2ee4 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WinptyAssert.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WinptyException.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WinptyException.obj +new file mode 100644 +index 0000000..25c2785 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WinptyException.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WinptyVersion.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WinptyVersion.obj +new file mode 100644 +index 0000000..005bab0 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/deps/winpty/src/shared/WinptyVersion.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/win_delay_load_hook.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/win_delay_load_hook.obj +new file mode 100644 +index 0000000..d8090c1 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/win_delay_load_hook.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.exe.recipe b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.exe.recipe +new file mode 100644 +index 0000000..2d30c1a +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.exe.recipe +@@ -0,0 +1,11 @@ ++ ++ ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\winpty-agent.exe ++ ++ ++ ++ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/CL.command.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/CL.command.1.tlog +new file mode 100644 +index 0000000..09a5917 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/CL.command.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/CL.read.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/CL.read.1.tlog +new file mode 100644 +index 0000000..fbd0aad +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/CL.read.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/CL.write.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/CL.write.1.tlog +new file mode 100644 +index 0000000..8675fcd +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/CL.write.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/Cl.items.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/Cl.items.tlog +new file mode 100644 +index 0000000..c1b1c58 +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/Cl.items.tlog +@@ -0,0 +1,29 @@ ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\Agent.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\Agent.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\AgentCreateDesktop.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\AgentCreateDesktop.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\ConsoleFont.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\ConsoleFont.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\ConsoleInput.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\ConsoleInput.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\ConsoleInputReencoding.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\ConsoleInputReencoding.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\ConsoleLine.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\ConsoleLine.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\DebugShowInput.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\DebugShowInput.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\DefaultInputMap.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\DefaultInputMap.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\EventLoop.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\EventLoop.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\InputMap.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\InputMap.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\LargeConsoleRead.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\LargeConsoleRead.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\NamedPipe.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\NamedPipe.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\Scraper.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\Scraper.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\Terminal.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\Terminal.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\Win32Console.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\Win32Console.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\Win32ConsoleBuffer.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\Win32ConsoleBuffer.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\agent\main.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\agent\main.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\BackgroundDesktop.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\shared\BackgroundDesktop.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\Buffer.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\shared\Buffer.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\DebugClient.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\shared\DebugClient.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\GenRandom.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\shared\GenRandom.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\OwnedHandle.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\shared\OwnedHandle.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\StringUtil.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\shared\StringUtil.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\WindowsSecurity.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\shared\WindowsSecurity.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\WindowsVersion.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\shared\WindowsVersion.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\WinptyAssert.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\shared\WinptyAssert.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\WinptyException.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\shared\WinptyException.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\WinptyVersion.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\deps\winpty\src\shared\WinptyVersion.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src\win_delay_load_hook.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty-agent\win_delay_load_hook.obj +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.command.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.command.1.tlog +new file mode 100644 +index 0000000..aed610d +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.command.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.read.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.read.1.tlog +new file mode 100644 +index 0000000..f48412b +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.read.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.secondary.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.secondary.1.tlog +new file mode 100644 +index 0000000..a3719bf +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.secondary.1.tlog +@@ -0,0 +1,3 @@ ++^C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\AGENT.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\AGENTCREATEDESKTOP.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\CONSOLEFONT.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\CONSOLEINPUT.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\CONSOLEINPUTREENCODING.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\CONSOLELINE.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\DEBUGSHOWINPUT.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\DEFAULTINPUTMAP.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\EVENTLOOP.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\INPUTMAP.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\LARGECONSOLEREAD.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\MAIN.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\NAMEDPIPE.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\SCRAPER.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\TERMINAL.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\WIN32CONSOLE.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\AGENT\WIN32CONSOLEBUFFER.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\SHARED\BACKGROUNDDESKTOP.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\SHARED\BUFFER.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\SHARED\DEBUGCLIENT.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\SHARED\GENRANDOM.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\SHARED\OWNEDHANDLE.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\SHARED\STRINGUTIL.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\SHARED\WINDOWSSECURITY.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\SHARED\WINDOWSVERSION.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\SHARED\WINPTYASSERT.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\SHARED\WINPTYEXCEPTION.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\DEPS\WINPTY\SRC\SHARED\WINPTYVERSION.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY-AGENT\WIN_DELAY_LOAD_HOOK.OBJ ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\winpty-agent.IPDB ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\winpty-agent.IOBJ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.write.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.write.1.tlog +new file mode 100644 +index 0000000..257fad3 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/link.write.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/winpty-agent.lastbuildstate b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/winpty-agent.lastbuildstate +new file mode 100644 +index 0000000..b3017b9 +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty-agent/winpty-agent.tlog/winpty-agent.lastbuildstate +@@ -0,0 +1,2 @@ ++PlatformToolSet=v145:VCToolArchitecture=Native64Bit:VCToolsVersion=14.50.35717:VCServicingVersionCompilers=14.50.35730:TargetPlatformVersion=10.0.26100.0: ++Release|x64|C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\| +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/libwinpty/AgentLocation.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/libwinpty/AgentLocation.obj +new file mode 100644 +index 0000000..bd0dc0d +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/libwinpty/AgentLocation.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/libwinpty/winpty.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/libwinpty/winpty.obj +new file mode 100644 +index 0000000..3deb47c +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/libwinpty/winpty.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/BackgroundDesktop.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/BackgroundDesktop.obj +new file mode 100644 +index 0000000..098d6dd +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/BackgroundDesktop.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/Buffer.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/Buffer.obj +new file mode 100644 +index 0000000..ca91e06 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/Buffer.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/DebugClient.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/DebugClient.obj +new file mode 100644 +index 0000000..81c6e89 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/DebugClient.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/GenRandom.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/GenRandom.obj +new file mode 100644 +index 0000000..ed52891 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/GenRandom.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/OwnedHandle.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/OwnedHandle.obj +new file mode 100644 +index 0000000..e752993 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/OwnedHandle.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/StringUtil.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/StringUtil.obj +new file mode 100644 +index 0000000..32b0597 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/StringUtil.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WindowsSecurity.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WindowsSecurity.obj +new file mode 100644 +index 0000000..e85cb9d +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WindowsSecurity.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WindowsVersion.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WindowsVersion.obj +new file mode 100644 +index 0000000..a11dc7d +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WindowsVersion.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WinptyAssert.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WinptyAssert.obj +new file mode 100644 +index 0000000..34a8676 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WinptyAssert.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WinptyException.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WinptyException.obj +new file mode 100644 +index 0000000..8edf94c +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WinptyException.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WinptyVersion.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WinptyVersion.obj +new file mode 100644 +index 0000000..79dbbe9 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/deps/winpty/src/shared/WinptyVersion.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/win_delay_load_hook.obj b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/win_delay_load_hook.obj +new file mode 100644 +index 0000000..30af194 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/win_delay_load_hook.obj differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.dll.recipe b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.dll.recipe +new file mode 100644 +index 0000000..38248ff +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.dll.recipe +@@ -0,0 +1,11 @@ ++ ++ ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\winpty.dll ++ ++ ++ ++ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/CL.command.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/CL.command.1.tlog +new file mode 100644 +index 0000000..2b836a1 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/CL.command.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/CL.read.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/CL.read.1.tlog +new file mode 100644 +index 0000000..33769e2 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/CL.read.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/CL.write.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/CL.write.1.tlog +new file mode 100644 +index 0000000..ddf382b +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/CL.write.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/Cl.items.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/Cl.items.tlog +new file mode 100644 +index 0000000..1b1d060 +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/Cl.items.tlog +@@ -0,0 +1,14 @@ ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\libwinpty\AgentLocation.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\libwinpty\AgentLocation.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\libwinpty\winpty.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\libwinpty\winpty.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\BackgroundDesktop.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\shared\BackgroundDesktop.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\Buffer.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\shared\Buffer.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\DebugClient.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\shared\DebugClient.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\GenRandom.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\shared\GenRandom.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\OwnedHandle.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\shared\OwnedHandle.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\StringUtil.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\shared\StringUtil.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\WindowsSecurity.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\shared\WindowsSecurity.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\WindowsVersion.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\shared\WindowsVersion.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\WinptyAssert.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\shared\WinptyAssert.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\WinptyException.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\shared\WinptyException.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\deps\winpty\src\shared\WinptyVersion.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\deps\winpty\src\shared\WinptyVersion.obj ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src\win_delay_load_hook.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\deps\winpty\src\Release\obj\winpty\win_delay_load_hook.obj +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.command.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.command.1.tlog +new file mode 100644 +index 0000000..285e761 +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.command.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.read.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.read.1.tlog +new file mode 100644 +index 0000000..9e527ee +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.read.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.secondary.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.secondary.1.tlog +new file mode 100644 +index 0000000..b61a693 +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.secondary.1.tlog +@@ -0,0 +1,5 @@ ++^C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\LIBWINPTY\AGENTLOCATION.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\LIBWINPTY\WINPTY.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\SHARED\BACKGROUNDDESKTOP.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\SHARED\BUFFER.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\SHARED\DEBUGCLIENT.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\SHARED\GENRANDOM.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\SHARED\OWNEDHANDLE.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\SHARED\STRINGUTIL.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\SHARED\WINDOWSSECURITY.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\SHARED\WINDOWSVERSION.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\SHARED\WINPTYASSERT.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\SHARED\WINPTYEXCEPTION.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\DEPS\WINPTY\SRC\SHARED\WINPTYVERSION.OBJ|C:\USERS\REMOTE\DOCUMENTS\GITHUB\CLUI\NODE_MODULES\NODE-PTY\BUILD\DEPS\WINPTY\SRC\RELEASE\OBJ\WINPTY\WIN_DELAY_LOAD_HOOK.OBJ ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\winpty.lib ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\winpty.EXP ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\winpty.IPDB ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\winpty.IOBJ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.write.1.tlog b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.write.1.tlog +new file mode 100644 +index 0000000..e91fcdd +Binary files /dev/null and b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/link.write.1.tlog differ +diff --git a/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/winpty.lastbuildstate b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/winpty.lastbuildstate +new file mode 100644 +index 0000000..b3017b9 +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/Release/obj/winpty/winpty.tlog/winpty.lastbuildstate +@@ -0,0 +1,2 @@ ++PlatformToolSet=v145:VCToolArchitecture=Native64Bit:VCToolsVersion=14.50.35717:VCServicingVersionCompilers=14.50.35730:TargetPlatformVersion=10.0.26100.0: ++Release|x64|C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\| +diff --git a/node_modules/node-pty/build/deps/winpty/src/winpty-agent.vcxproj b/node_modules/node-pty/build/deps/winpty/src/winpty-agent.vcxproj +new file mode 100644 +index 0000000..4e6c263 +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/winpty-agent.vcxproj +@@ -0,0 +1,264 @@ ++ ++ ++ ++ ++ Debug ++ x64 ++ ++ ++ Release ++ x64 ++ ++ ++ ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D} ++ Win32Proj ++ winpty-agent ++ true ++ x64 ++ 10.0.26100.0 ++ ++ ++ ++ Application ++ false ++ ++ ++ v145 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(ExecutablePath);$(MSBuildProjectDirectory)\..\..\..\..\deps\winpty\src\bin\;$(MSBuildProjectDirectory)\..\..\..\..\deps\winpty\src\bin\ ++ $(Configuration)\obj\$(ProjectName)\ ++ false ++ true ++ $(SolutionDir)$(Configuration)\ ++ $(ProjectName) ++ $(OutDir)\$(ProjectName)$(TargetExt) ++ ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\..\..\..\deps\winpty\src\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 /guard:cf /w34244 /w34267 /ZH:SHA_256 %(AdditionalOptions) ++ EnableFastChecks ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ Sync ++ false ++ true ++ false ++ Disabled ++ NotUsing ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty-agent;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;WINPTY_AGENT_ASSERT;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions) ++ MultiThreadedDebug ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;gdi32.lib;winspool.lib;comdlg32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib";advapi32.lib;shell32.lib;user32.lib ++ /LTCG:INCREMENTAL /guard:cf /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName)$(TargetExt) ++ Console ++ true ++ MachineX64 ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\..\..\..\deps\winpty\src\include;%(AdditionalIncludeDirectories) ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty-agent;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;WINPTY_AGENT_ASSERT;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\..\..\..\deps\winpty\src\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 /guard:cf /w34244 /w34267 /ZH:SHA_256 %(AdditionalOptions) ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ Sync ++ Speed ++ true ++ AnySuitable ++ true ++ true ++ true ++ Full ++ NotUsing ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty-agent;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;WINPTY_AGENT_ASSERT;HOST_BINARY="node.exe";%(PreprocessorDefinitions) ++ MultiThreaded ++ false ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;gdi32.lib;winspool.lib;comdlg32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib";advapi32.lib;shell32.lib;user32.lib ++ /LTCG:INCREMENTAL /guard:cf /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName)$(TargetExt) ++ Console ++ true ++ MachineX64 ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\..\..\..\deps\winpty\src\include;%(AdditionalIncludeDirectories) ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty-agent;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;WINPTY_AGENT_ASSERT;HOST_BINARY="node.exe";%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(IntDir)\deps\winpty\src\agent\Agent.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\AgentCreateDesktop.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\ConsoleFont.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\ConsoleInput.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\ConsoleInputReencoding.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\ConsoleLine.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\DebugShowInput.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\DefaultInputMap.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\EventLoop.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\InputMap.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\LargeConsoleRead.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\NamedPipe.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\Scraper.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\Terminal.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\Win32Console.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\Win32ConsoleBuffer.obj ++ ++ ++ $(IntDir)\deps\winpty\src\agent\main.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\BackgroundDesktop.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\Buffer.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\DebugClient.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\GenRandom.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\OwnedHandle.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\StringUtil.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WindowsSecurity.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WindowsVersion.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WinptyAssert.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WinptyException.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WinptyVersion.obj ++ ++ ++ ++ ++ ++ ++ +diff --git a/node_modules/node-pty/build/deps/winpty/src/winpty-agent.vcxproj.filters b/node_modules/node-pty/build/deps/winpty/src/winpty-agent.vcxproj.filters +new file mode 100644 +index 0000000..7a1222f +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/winpty-agent.vcxproj.filters +@@ -0,0 +1,1816 @@ ++ ++ ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {8474C169-9C01-C09B-BA71-B21D816D6E84} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {7B735499-E5DD-1C2B-6C26-70023832A1CF} ++ ++ ++ {E9F714C1-DA89-54E2-60CF-39FEB20BF756} ++ ++ ++ {17E7FD5A-7606-4EFA-3702-BB63A4D69084} ++ ++ ++ {87566BA0-CA33-1144-65F5-087C5F9D6C20} ++ ++ ++ {84E6FEBA-825D-6EBF-DAAC-F202DA6E3F7D} ++ ++ ++ {0E3ABA58-3923-DEAA-92E0-59173290502D} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {77348C0E-2034-7791-74D5-63C077DF5A3B} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\agent ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src ++ ++ ++ ..\..\..\..\deps\winpty\src ++ ++ ++ +diff --git a/node_modules/node-pty/build/deps/winpty/src/winpty-debugserver.vcxproj b/node_modules/node-pty/build/deps/winpty/src/winpty-debugserver.vcxproj +new file mode 100644 +index 0000000..5d5aaf8 +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/winpty-debugserver.vcxproj +@@ -0,0 +1,176 @@ ++ ++ ++ ++ ++ Debug ++ x64 ++ ++ ++ Release ++ x64 ++ ++ ++ ++ {EA108244-FC30-A875-18FC-C7D5A13F563B} ++ Win32Proj ++ winpty-debugserver ++ true ++ x64 ++ 10.0.26100.0 ++ ++ ++ ++ Application ++ ++ ++ v145 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(ExecutablePath);$(MSBuildProjectDirectory)\..\..\..\..\deps\winpty\src\bin\;$(MSBuildProjectDirectory)\..\..\..\..\deps\winpty\src\bin\ ++ $(Configuration)\obj\$(ProjectName)\ ++ false ++ true ++ $(SolutionDir)$(Configuration)\ ++ $(ProjectName) ++ $(OutDir)\$(ProjectName)$(TargetExt) ++ ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ EnableFastChecks ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ Sync ++ false ++ true ++ false ++ Disabled ++ NotUsing ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty-debugserver;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions) ++ MultiThreadedDebug ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib";advapi32.lib ++ /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName)$(TargetExt) ++ Console ++ true ++ MachineX64 ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty-debugserver;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ Sync ++ Speed ++ true ++ AnySuitable ++ true ++ true ++ true ++ Full ++ NotUsing ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty-debugserver;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";%(PreprocessorDefinitions) ++ MultiThreaded ++ false ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib";advapi32.lib ++ /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName)$(TargetExt) ++ Console ++ true ++ MachineX64 ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty-debugserver;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(IntDir)\deps\winpty\src\debugserver\DebugServer.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\DebugClient.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\OwnedHandle.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\StringUtil.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WindowsSecurity.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WindowsVersion.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WinptyAssert.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WinptyException.obj ++ ++ ++ ++ ++ ++ ++ +diff --git a/node_modules/node-pty/build/deps/winpty/src/winpty-debugserver.vcxproj.filters b/node_modules/node-pty/build/deps/winpty/src/winpty-debugserver.vcxproj.filters +new file mode 100644 +index 0000000..4d04a1b +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/winpty-debugserver.vcxproj.filters +@@ -0,0 +1,547 @@ ++ ++ ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {817F7B63-9678-EBFA-2357-CDD271C9F580} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {7B735499-E5DD-1C2B-6C26-70023832A1CF} ++ ++ ++ {E9F714C1-DA89-54E2-60CF-39FEB20BF756} ++ ++ ++ {17E7FD5A-7606-4EFA-3702-BB63A4D69084} ++ ++ ++ {87566BA0-CA33-1144-65F5-087C5F9D6C20} ++ ++ ++ {84E6FEBA-825D-6EBF-DAAC-F202DA6E3F7D} ++ ++ ++ {0E3ABA58-3923-DEAA-92E0-59173290502D} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {77348C0E-2034-7791-74D5-63C077DF5A3B} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ ++ ++ ..\..\..\..\deps\winpty\src\debugserver ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src ++ ++ ++ ..\..\..\..\deps\winpty\src ++ ++ ++ +diff --git a/node_modules/node-pty/build/deps/winpty/src/winpty.sln b/node_modules/node-pty/build/deps/winpty/src/winpty.sln +new file mode 100644 +index 0000000..db4e6e8 +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/winpty.sln +@@ -0,0 +1,31 @@ ++Microsoft Visual Studio Solution File, Format Version 12.00 ++# Visual Studio 2015 ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winpty-agent", "winpty-agent.vcxproj", "{F8003C38-CF95-6428-1CB5-CDD637F3832D}" ++EndProject ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winpty-debugserver", "winpty-debugserver.vcxproj", "{EA108244-FC30-A875-18FC-C7D5A13F563B}" ++EndProject ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winpty", "winpty.vcxproj", "{13CE013E-AA73-12FD-C0D8-164E6FFFB5EB}" ++EndProject ++Global ++ GlobalSection(SolutionConfigurationPlatforms) = preSolution ++ Debug|x64 = Debug|x64 ++ Release|x64 = Release|x64 ++ EndGlobalSection ++ GlobalSection(ProjectConfigurationPlatforms) = postSolution ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB}.Debug|x64.ActiveCfg = Debug|x64 ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB}.Debug|x64.Build.0 = Debug|x64 ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB}.Release|x64.ActiveCfg = Release|x64 ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB}.Release|x64.Build.0 = Release|x64 ++ {EA108244-FC30-A875-18FC-C7D5A13F563B}.Debug|x64.ActiveCfg = Debug|x64 ++ {EA108244-FC30-A875-18FC-C7D5A13F563B}.Debug|x64.Build.0 = Debug|x64 ++ {EA108244-FC30-A875-18FC-C7D5A13F563B}.Release|x64.ActiveCfg = Release|x64 ++ {EA108244-FC30-A875-18FC-C7D5A13F563B}.Release|x64.Build.0 = Release|x64 ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D}.Debug|x64.ActiveCfg = Debug|x64 ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D}.Debug|x64.Build.0 = Debug|x64 ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D}.Release|x64.ActiveCfg = Release|x64 ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D}.Release|x64.Build.0 = Release|x64 ++ EndGlobalSection ++ GlobalSection(SolutionProperties) = preSolution ++ HideSolutionNode = FALSE ++ EndGlobalSection ++EndGlobal +diff --git a/node_modules/node-pty/build/deps/winpty/src/winpty.vcxproj b/node_modules/node-pty/build/deps/winpty/src/winpty.vcxproj +new file mode 100644 +index 0000000..6429ccc +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/winpty.vcxproj +@@ -0,0 +1,197 @@ ++ ++ ++ ++ ++ Debug ++ x64 ++ ++ ++ Release ++ x64 ++ ++ ++ ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB} ++ Win32Proj ++ winpty ++ true ++ x64 ++ 10.0.26100.0 ++ ++ ++ ++ DynamicLibrary ++ false ++ ++ ++ v145 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(ExecutablePath);$(MSBuildProjectDirectory)\..\..\..\..\deps\winpty\src\bin\;$(MSBuildProjectDirectory)\..\..\..\..\deps\winpty\src\bin\ ++ $(Configuration)\obj\$(ProjectName)\ ++ false ++ true ++ $(SolutionDir)$(Configuration)\ ++ $(ProjectName) ++ $(OutDir)\$(ProjectName)$(TargetExt) ++ ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\..\..\..\deps\winpty\src\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 /guard:cf /w34244 /w34267 /ZH:SHA_256 %(AdditionalOptions) ++ EnableFastChecks ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ Sync ++ false ++ true ++ false ++ Disabled ++ NotUsing ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;COMPILING_WINPTY_DLL;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions) ++ MultiThreadedDebug ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;gdi32.lib;winspool.lib;comdlg32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib";advapi32.lib;user32.lib ++ /LTCG:INCREMENTAL /guard:cf /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName)$(TargetExt) ++ true ++ MachineX64 ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\..\..\..\deps\winpty\src\include;%(AdditionalIncludeDirectories) ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;COMPILING_WINPTY_DLL;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\..\..\..\deps\winpty\src\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 /guard:cf /w34244 /w34267 /ZH:SHA_256 %(AdditionalOptions) ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ Sync ++ Speed ++ true ++ AnySuitable ++ true ++ true ++ true ++ Full ++ NotUsing ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;COMPILING_WINPTY_DLL;HOST_BINARY="node.exe";%(PreprocessorDefinitions) ++ MultiThreaded ++ false ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;gdi32.lib;winspool.lib;comdlg32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib";advapi32.lib;user32.lib ++ /LTCG:INCREMENTAL /guard:cf /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName)$(TargetExt) ++ true ++ MachineX64 ++ ++ ++ ..\..\..\..\deps\winpty\src\gen;C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\..\..\..\deps\winpty\src\include;%(AdditionalIncludeDirectories) ++ UNICODE;_UNICODE;_WIN32_WINNT=0x0501;NOMINMAX;NODE_GYP_MODULE_NAME=winpty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;COMPILING_WINPTY_DLL;HOST_BINARY="node.exe";%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(IntDir)\deps\winpty\src\libwinpty\AgentLocation.obj ++ ++ ++ $(IntDir)\deps\winpty\src\libwinpty\winpty.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\BackgroundDesktop.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\Buffer.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\DebugClient.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\GenRandom.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\OwnedHandle.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\StringUtil.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WindowsSecurity.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WindowsVersion.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WinptyAssert.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WinptyException.obj ++ ++ ++ $(IntDir)\deps\winpty\src\shared\WinptyVersion.obj ++ ++ ++ ++ ++ ++ ++ +diff --git a/node_modules/node-pty/build/deps/winpty/src/winpty.vcxproj.filters b/node_modules/node-pty/build/deps/winpty/src/winpty.vcxproj.filters +new file mode 100644 +index 0000000..01f3098 +--- /dev/null ++++ b/node_modules/node-pty/build/deps/winpty/src/winpty.vcxproj.filters +@@ -0,0 +1,871 @@ ++ ++ ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {57CA55B8-BCC5-4000-CE3A-58972F82E9CB} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {C5711D3F-52A3-91AF-3145-4CECCD699FDA} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {C5711D3F-52A3-91AF-3145-4CECCD699FDA} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {C5711D3F-52A3-91AF-3145-4CECCD699FDA} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {20D50607-EB73-BC01-11AE-A2B6030BB0A1} ++ ++ ++ {7B735499-E5DD-1C2B-6C26-70023832A1CF} ++ ++ ++ {E9F714C1-DA89-54E2-60CF-39FEB20BF756} ++ ++ ++ {17E7FD5A-7606-4EFA-3702-BB63A4D69084} ++ ++ ++ {87566BA0-CA33-1144-65F5-087C5F9D6C20} ++ ++ ++ {84E6FEBA-825D-6EBF-DAAC-F202DA6E3F7D} ++ ++ ++ {0E3ABA58-3923-DEAA-92E0-59173290502D} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {77348C0E-2034-7791-74D5-63C077DF5A3B} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {D8C1C9B5-38B1-FC5D-54EB-0CB99232FA56} ++ ++ ++ {65CA4A4C-2F90-FF0A-086F-3A4E81B2F5F5} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ ++ ++ ..\..\..\..\deps\winpty\src\include ++ ++ ++ ..\..\..\..\deps\winpty\src\libwinpty ++ ++ ++ ..\..\..\..\deps\winpty\src\libwinpty ++ ++ ++ ..\..\..\..\deps\winpty\src\libwinpty ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ ..\..\..\..\deps\winpty\src\shared ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src ++ ++ ++ ..\..\..\..\deps\winpty\src ++ ++ ++ +diff --git a/node_modules/node-pty/build/node_modules/node-addon-api/Release/obj/node_addon_api_except/node_add.6CE87AED.tlog/Cl.items.tlog b/node_modules/node-pty/build/node_modules/node-addon-api/Release/obj/node_addon_api_except/node_add.6CE87AED.tlog/Cl.items.tlog +new file mode 100644 +index 0000000..b589a77 +--- /dev/null ++++ b/node_modules/node-pty/build/node_modules/node-addon-api/Release/obj/node_addon_api_except/node_add.6CE87AED.tlog/Cl.items.tlog +@@ -0,0 +1 @@ ++C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src\win_delay_load_hook.cc;C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\node_modules\node-addon-api\Release\obj\node_addon_api_except\win_delay_load_hook.obj +diff --git a/node_modules/node-pty/build/node_modules/node-addon-api/Release/obj/node_addon_api_except/node_add.6CE87AED.tlog/node_addon_api_except.lastbuildstate b/node_modules/node-pty/build/node_modules/node-addon-api/Release/obj/node_addon_api_except/node_add.6CE87AED.tlog/node_addon_api_except.lastbuildstate +new file mode 100644 +index 0000000..b3017b9 +--- /dev/null ++++ b/node_modules/node-pty/build/node_modules/node-addon-api/Release/obj/node_addon_api_except/node_add.6CE87AED.tlog/node_addon_api_except.lastbuildstate +@@ -0,0 +1,2 @@ ++PlatformToolSet=v145:VCToolArchitecture=Native64Bit:VCToolsVersion=14.50.35717:VCServicingVersionCompilers=14.50.35730:TargetPlatformVersion=10.0.26100.0: ++Release|x64|C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\| +diff --git a/node_modules/node-pty/build/node_modules/node-addon-api/Release/obj/node_addon_api_except/node_addon_api_except.recipe b/node_modules/node-pty/build/node_modules/node-addon-api/Release/obj/node_addon_api_except/node_addon_api_except.recipe +new file mode 100644 +index 0000000..7e6b853 +--- /dev/null ++++ b/node_modules/node-pty/build/node_modules/node-addon-api/Release/obj/node_addon_api_except/node_addon_api_except.recipe +@@ -0,0 +1,11 @@ ++ ++ ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-pty\build\Release\node_addon_api_except ++ ++ ++ ++ ++ ++ +\ No newline at end of file +diff --git a/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api.sln b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api.sln +new file mode 100644 +index 0000000..67f5d2a +--- /dev/null ++++ b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api.sln +@@ -0,0 +1,31 @@ ++Microsoft Visual Studio Solution File, Format Version 12.00 ++# Visual Studio 2015 ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "node_addon_api", "node_addon_api.vcxproj", "{0858B754-6464-473D-939F-7F8D741F080A}" ++EndProject ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "node_addon_api_except", "node_addon_api_except.vcxproj", "{6CE87AED-B40E-DDE2-32D1-2FD3ABC55822}" ++EndProject ++Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "node_addon_api_maybe", "node_addon_api_maybe.vcxproj", "{A219E0BB-1560-7B62-BFA1-6397A6FF5679}" ++EndProject ++Global ++ GlobalSection(SolutionConfigurationPlatforms) = preSolution ++ Debug|x64 = Debug|x64 ++ Release|x64 = Release|x64 ++ EndGlobalSection ++ GlobalSection(ProjectConfigurationPlatforms) = postSolution ++ {0858B754-6464-473D-939F-7F8D741F080A}.Debug|x64.ActiveCfg = Debug|x64 ++ {0858B754-6464-473D-939F-7F8D741F080A}.Debug|x64.Build.0 = Debug|x64 ++ {0858B754-6464-473D-939F-7F8D741F080A}.Release|x64.ActiveCfg = Release|x64 ++ {0858B754-6464-473D-939F-7F8D741F080A}.Release|x64.Build.0 = Release|x64 ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822}.Debug|x64.ActiveCfg = Debug|x64 ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822}.Debug|x64.Build.0 = Debug|x64 ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822}.Release|x64.ActiveCfg = Release|x64 ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822}.Release|x64.Build.0 = Release|x64 ++ {A219E0BB-1560-7B62-BFA1-6397A6FF5679}.Debug|x64.ActiveCfg = Debug|x64 ++ {A219E0BB-1560-7B62-BFA1-6397A6FF5679}.Debug|x64.Build.0 = Debug|x64 ++ {A219E0BB-1560-7B62-BFA1-6397A6FF5679}.Release|x64.ActiveCfg = Release|x64 ++ {A219E0BB-1560-7B62-BFA1-6397A6FF5679}.Release|x64.Build.0 = Release|x64 ++ EndGlobalSection ++ GlobalSection(SolutionProperties) = preSolution ++ HideSolutionNode = FALSE ++ EndGlobalSection ++EndGlobal +diff --git a/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api.vcxproj b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api.vcxproj +new file mode 100644 +index 0000000..998d7b7 +--- /dev/null ++++ b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api.vcxproj +@@ -0,0 +1,139 @@ ++ ++ ++ ++ ++ Debug ++ x64 ++ ++ ++ Release ++ x64 ++ ++ ++ ++ {0858B754-6464-473D-939F-7F8D741F080A} ++ Win32Proj ++ node_addon_api ++ true ++ x64 ++ 10.0.26100.0 ++ ++ ++ ++ Utility ++ ++ ++ v145 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(ExecutablePath);$(MSBuildProjectDirectory)\..\..\..\node_modules\node-addon-api\bin\;$(MSBuildProjectDirectory)\..\..\..\node_modules\node-addon-api\bin\ ++ $(Configuration)\obj\$(ProjectName)\ ++ false ++ true ++ $(SolutionDir)$(Configuration)\ ++ $(ProjectName) ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ EnableFastChecks ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ false ++ false ++ true ++ false ++ Disabled ++ NotUsing ++ NODE_GYP_MODULE_NAME=node_addon_api;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions) ++ MultiThreadedDebug ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib" ++ /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ true ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=node_addon_api;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ false ++ Speed ++ true ++ AnySuitable ++ true ++ true ++ true ++ Full ++ NotUsing ++ NODE_GYP_MODULE_NAME=node_addon_api;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";%(PreprocessorDefinitions) ++ MultiThreaded ++ false ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib" ++ /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ true ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=node_addon_api;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api.vcxproj.filters b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api.vcxproj.filters +new file mode 100644 +index 0000000..4b19e58 +--- /dev/null ++++ b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api.vcxproj.filters +@@ -0,0 +1,91 @@ ++ ++ ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {A353D9AF-FDFE-F893-56AE-2F252738A960} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {A353D9AF-FDFE-F893-56AE-2F252738A960} ++ ++ ++ {7B735499-E5DD-1C2B-6C26-70023832A1CF} ++ ++ ++ {E9F714C1-DA89-54E2-60CF-39FEB20BF756} ++ ++ ++ {17E7FD5A-7606-4EFA-3702-BB63A4D69084} ++ ++ ++ {87566BA0-CA33-1144-65F5-087C5F9D6C20} ++ ++ ++ {84E6FEBA-825D-6EBF-DAAC-F202DA6E3F7D} ++ ++ ++ {0E3ABA58-3923-DEAA-92E0-59173290502D} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {77348C0E-2034-7791-74D5-63C077DF5A3B} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {A353D9AF-FDFE-F893-56AE-2F252738A960} ++ ++ ++ ++ ++ ..\..\..\node_modules\node-addon-api ++ ++ ++ ..\..\..\node_modules\node-addon-api ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src ++ ++ ++ ..\..\..\node_modules\node-addon-api ++ ++ ++ +diff --git a/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_except.vcxproj b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_except.vcxproj +new file mode 100644 +index 0000000..9280b6b +--- /dev/null ++++ b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_except.vcxproj +@@ -0,0 +1,139 @@ ++ ++ ++ ++ ++ Debug ++ x64 ++ ++ ++ Release ++ x64 ++ ++ ++ ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822} ++ Win32Proj ++ node_addon_api_except ++ true ++ x64 ++ 10.0.26100.0 ++ ++ ++ ++ Utility ++ ++ ++ v145 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(ExecutablePath);$(MSBuildProjectDirectory)\..\..\..\node_modules\node-addon-api\bin\;$(MSBuildProjectDirectory)\..\..\..\node_modules\node-addon-api\bin\ ++ $(Configuration)\obj\$(ProjectName)\ ++ false ++ true ++ $(SolutionDir)$(Configuration)\ ++ $(ProjectName) ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ EnableFastChecks ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ false ++ false ++ true ++ false ++ Disabled ++ NotUsing ++ NODE_GYP_MODULE_NAME=node_addon_api_except;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions) ++ MultiThreadedDebug ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib" ++ /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ true ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=node_addon_api_except;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ false ++ Speed ++ true ++ AnySuitable ++ true ++ true ++ true ++ Full ++ NotUsing ++ NODE_GYP_MODULE_NAME=node_addon_api_except;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";%(PreprocessorDefinitions) ++ MultiThreaded ++ false ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib" ++ /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ true ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=node_addon_api_except;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_except.vcxproj.filters b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_except.vcxproj.filters +new file mode 100644 +index 0000000..4b19e58 +--- /dev/null ++++ b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_except.vcxproj.filters +@@ -0,0 +1,91 @@ ++ ++ ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {A353D9AF-FDFE-F893-56AE-2F252738A960} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {A353D9AF-FDFE-F893-56AE-2F252738A960} ++ ++ ++ {7B735499-E5DD-1C2B-6C26-70023832A1CF} ++ ++ ++ {E9F714C1-DA89-54E2-60CF-39FEB20BF756} ++ ++ ++ {17E7FD5A-7606-4EFA-3702-BB63A4D69084} ++ ++ ++ {87566BA0-CA33-1144-65F5-087C5F9D6C20} ++ ++ ++ {84E6FEBA-825D-6EBF-DAAC-F202DA6E3F7D} ++ ++ ++ {0E3ABA58-3923-DEAA-92E0-59173290502D} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {77348C0E-2034-7791-74D5-63C077DF5A3B} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {A353D9AF-FDFE-F893-56AE-2F252738A960} ++ ++ ++ ++ ++ ..\..\..\node_modules\node-addon-api ++ ++ ++ ..\..\..\node_modules\node-addon-api ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src ++ ++ ++ ..\..\..\node_modules\node-addon-api ++ ++ ++ +diff --git a/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_maybe.vcxproj b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_maybe.vcxproj +new file mode 100644 +index 0000000..7863330 +--- /dev/null ++++ b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_maybe.vcxproj +@@ -0,0 +1,139 @@ ++ ++ ++ ++ ++ Debug ++ x64 ++ ++ ++ Release ++ x64 ++ ++ ++ ++ {A219E0BB-1560-7B62-BFA1-6397A6FF5679} ++ Win32Proj ++ node_addon_api_maybe ++ true ++ x64 ++ 10.0.26100.0 ++ ++ ++ ++ Utility ++ ++ ++ v145 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(ExecutablePath);$(MSBuildProjectDirectory)\..\..\..\node_modules\node-addon-api\bin\;$(MSBuildProjectDirectory)\..\..\..\node_modules\node-addon-api\bin\ ++ $(Configuration)\obj\$(ProjectName)\ ++ false ++ true ++ $(SolutionDir)$(Configuration)\ ++ $(ProjectName) ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ EnableFastChecks ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ false ++ false ++ true ++ false ++ Disabled ++ NotUsing ++ NODE_GYP_MODULE_NAME=node_addon_api_maybe;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions) ++ MultiThreadedDebug ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib" ++ /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ true ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=node_addon_api_maybe;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;%(DisableSpecificWarnings) ++ false ++ Speed ++ true ++ AnySuitable ++ true ++ true ++ true ++ Full ++ NotUsing ++ NODE_GYP_MODULE_NAME=node_addon_api_maybe;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";%(PreprocessorDefinitions) ++ MultiThreaded ++ false ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib" ++ /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ true ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=node_addon_api_maybe;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;HOST_BINARY="node.exe";%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_maybe.vcxproj.filters b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_maybe.vcxproj.filters +new file mode 100644 +index 0000000..4b19e58 +--- /dev/null ++++ b/node_modules/node-pty/build/node_modules/node-addon-api/node_addon_api_maybe.vcxproj.filters +@@ -0,0 +1,91 @@ ++ ++ ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {A353D9AF-FDFE-F893-56AE-2F252738A960} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {A353D9AF-FDFE-F893-56AE-2F252738A960} ++ ++ ++ {7B735499-E5DD-1C2B-6C26-70023832A1CF} ++ ++ ++ {E9F714C1-DA89-54E2-60CF-39FEB20BF756} ++ ++ ++ {17E7FD5A-7606-4EFA-3702-BB63A4D69084} ++ ++ ++ {87566BA0-CA33-1144-65F5-087C5F9D6C20} ++ ++ ++ {84E6FEBA-825D-6EBF-DAAC-F202DA6E3F7D} ++ ++ ++ {0E3ABA58-3923-DEAA-92E0-59173290502D} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {77348C0E-2034-7791-74D5-63C077DF5A3B} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {A353D9AF-FDFE-F893-56AE-2F252738A960} ++ ++ ++ ++ ++ ..\..\..\node_modules\node-addon-api ++ ++ ++ ..\..\..\node_modules\node-addon-api ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src ++ ++ ++ ..\..\..\node_modules\node-addon-api ++ ++ ++ +diff --git a/node_modules/node-pty/build/pty.vcxproj b/node_modules/node-pty/build/pty.vcxproj +new file mode 100644 +index 0000000..89e9cf5 +--- /dev/null ++++ b/node_modules/node-pty/build/pty.vcxproj +@@ -0,0 +1,168 @@ ++ ++ ++ ++ ++ Debug ++ x64 ++ ++ ++ Release ++ x64 ++ ++ ++ ++ {486B7E0C-282F-37BC-8E71-A7C4CD87F786} ++ Win32Proj ++ pty ++ true ++ x64 ++ 10.0.26100.0 ++ ++ ++ ++ DynamicLibrary ++ false ++ ++ ++ v145 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ $(ExecutablePath);$(MSBuildProjectDirectory)\..\bin\;$(MSBuildProjectDirectory)\..\bin\ ++ true ++ $(Configuration)\obj\$(ProjectName)\ ++ false ++ true ++ $(SolutionDir)$(Configuration)\ ++ .node ++ .node ++ .node ++ .node ++ $(ProjectName) ++ $(OutDir)\$(ProjectName).node ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;..\deps\winpty\src\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ /guard:cf /sdl /W3 /w34244 /w34267 /ZH:SHA_256 /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ EnableFastChecks ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;4506;4530;%(DisableSpecificWarnings) ++ true ++ Sync ++ false ++ true ++ false ++ Disabled ++ NotUsing ++ NODE_GYP_MODULE_NAME=pty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions) ++ MultiThreadedDebug ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib";shlwapi.lib ++ /DYNAMICBASE /guard:cf /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName).node ++ true ++ .node ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;..\deps\winpty\src\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=pty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";DEBUG;_DEBUG;%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;..\deps\winpty\src\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ /guard:cf /sdl /W3 /w34244 /w34267 /ZH:SHA_256 /Zc:__cplusplus -std:c++20 /Zm2000 %(AdditionalOptions) ++ true ++ OldStyle ++ 4351;4355;4800;4251;4275;4244;4267;4506;4530;%(DisableSpecificWarnings) ++ true ++ Sync ++ Speed ++ true ++ AnySuitable ++ true ++ true ++ true ++ Full ++ NotUsing ++ NODE_GYP_MODULE_NAME=pty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";%(PreprocessorDefinitions) ++ MultiThreaded ++ false ++ true ++ true ++ false ++ Level3 ++ true ++ ++ ++ /LTCG:INCREMENTAL %(AdditionalOptions) ++ ++ ++ kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;delayimp.lib;"C:\\Users\\remote\\.electron-gyp\\35.7.5\\x64\\node.lib";shlwapi.lib ++ /DYNAMICBASE /guard:cf /LTCG:INCREMENTAL /ignore:4199 %(AdditionalOptions) ++ node.exe;%(DelayLoadDLLs) ++ true ++ true ++ true ++ $(OutDir)$(ProjectName).node ++ true ++ .node ++ MachineX64 ++ ++ ++ C:\Users\remote\.electron-gyp\35.7.5\include\node;C:\Users\remote\.electron-gyp\35.7.5\src;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\config;C:\Users\remote\.electron-gyp\35.7.5\deps\openssl\openssl\include;C:\Users\remote\.electron-gyp\35.7.5\deps\uv\include;C:\Users\remote\.electron-gyp\35.7.5\deps\zlib;C:\Users\remote\.electron-gyp\35.7.5\deps\v8\include;..\node_modules\node-addon-api;..\deps\winpty\src\include;..\node_modules\node-addon-api;%(AdditionalIncludeDirectories) ++ NODE_GYP_MODULE_NAME=pty;USING_UV_SHARED=1;USING_V8_SHARED=1;V8_DEPRECATION_WARNINGS=1;_GLIBCXX_USE_CXX11_ABI=1;ELECTRON_ENSURE_CONFIG_GYPI;USING_ELECTRON_CONFIG_GYPI;V8_COMPRESS_POINTERS;V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE;V8_31BIT_SMIS_ON_64BIT_ARCH;V8_ENABLE_SANDBOX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_HAS_EXCEPTIONS=0;NOMINMAX;OPENSSL_NO_PINSHARED;OPENSSL_THREADS;OPENSSL_NO_ASM;NAPI_CPP_EXCEPTIONS;_HAS_EXCEPTIONS=1;BUILDING_NODE_EXTENSION;HOST_BINARY="node.exe";%(PreprocessorDefinitions);%(PreprocessorDefinitions) ++ ++ ++ ++ ++ ++ ++ ++ $(IntDir)\src\win\winpty.obj ++ ++ ++ $(IntDir)\src\win\path_util.obj ++ ++ ++ ++ ++ ++ {6CE87AED-B40E-DDE2-32D1-2FD3ABC55822} ++ false ++ ++ ++ {F8003C38-CF95-6428-1CB5-CDD637F3832D} ++ false ++ ++ ++ {13CE013E-AA73-12FD-C0D8-164E6FFFB5EB} ++ false ++ ++ ++ ++ ++ ++ +diff --git a/node_modules/node-pty/build/pty.vcxproj.filters b/node_modules/node-pty/build/pty.vcxproj.filters +new file mode 100644 +index 0000000..ebe9550 +--- /dev/null ++++ b/node_modules/node-pty/build/pty.vcxproj.filters +@@ -0,0 +1,67 @@ ++ ++ ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {47FC5EC4-15EB-E92F-89D7-AFE51CF838A9} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {47FC5EC4-15EB-E92F-89D7-AFE51CF838A9} ++ ++ ++ {7B735499-E5DD-1C2B-6C26-70023832A1CF} ++ ++ ++ {E9F714C1-DA89-54E2-60CF-39FEB20BF756} ++ ++ ++ {17E7FD5A-7606-4EFA-3702-BB63A4D69084} ++ ++ ++ {87566BA0-CA33-1144-65F5-087C5F9D6C20} ++ ++ ++ {84E6FEBA-825D-6EBF-DAAC-F202DA6E3F7D} ++ ++ ++ {0E3ABA58-3923-DEAA-92E0-59173290502D} ++ ++ ++ {56DF7A98-063D-FB9D-485C-089023B4C16A} ++ ++ ++ {77348C0E-2034-7791-74D5-63C077DF5A3B} ++ ++ ++ {8CDEE807-BC53-E450-C8B8-4DEBB66742D4} ++ ++ ++ {739DB09A-CC57-A953-A6CF-F64FA08E4FA7} ++ ++ ++ ++ ++ ..\src\win ++ ++ ++ ..\src\win ++ ++ ++ C:\Users\remote\Documents\GitHub\clui\node_modules\node-gyp\src ++ ++ ++ .. ++ ++ ++ +diff --git a/node_modules/node-pty/deps/winpty/src/gen/GenVersion.h b/node_modules/node-pty/deps/winpty/src/gen/GenVersion.h +new file mode 100644 +index 0000000..343d32d +--- /dev/null ++++ b/node_modules/node-pty/deps/winpty/src/gen/GenVersion.h +@@ -0,0 +1,3 @@ ++// AUTO-GENERATED BY .\UpdateGenVersion.bat 6a88bf39486f265d5465ed2bc300e68093469c96 ++const char GenVersion_Version[] = "0.4.4-dev"; ++const char GenVersion_Commit[] = "6a88bf39486f265d5465ed2bc300e68093469c96"; +diff --git a/node_modules/node-pty/deps/winpty/src/winpty.gyp b/node_modules/node-pty/deps/winpty/src/winpty.gyp +index 1ac5758..d2a5e79 100644 +--- a/node_modules/node-pty/deps/winpty/src/winpty.gyp ++++ b/node_modules/node-pty/deps/winpty/src/winpty.gyp +@@ -10,7 +10,7 @@ + # make -j4 CXX=i686-w64-mingw32-g++ LDFLAGS="-static -static-libgcc -static-libstdc++" + + 'variables': { +- 'WINPTY_COMMIT_HASH%': ' path.join(ICONSET_DIR, src)) + .filter((p) => { + if (!fs.existsSync(p)) { + console.warn(`[build-icons] missing source: ${p}`) + return false + } + return true + }) + if (buffers.length === 0) { + throw new Error(`no source PNGs found for ${outPath}`) + } + const ico = await pngToIco(buffers) + fs.writeFileSync(outPath, ico) + console.log(`[build-icons] wrote ${outPath} (${buffers.length} sources, ${ico.length} bytes)`) +} + +async function main() { + await build(path.join(RESOURCES_DIR, 'icon.ico'), [ + 'icon_16x16.png', + 'icon_32x32.png', + 'icon_32x32@2x.png', // 64 + 'icon_128x128.png', + 'icon_256x256.png', + ]) + + await build(path.join(RESOURCES_DIR, 'tray.ico'), [ + 'icon_16x16.png', + 'icon_16x16@2x.png', // 32 + 'icon_32x32.png', + ]) +} + +main().catch((err) => { + console.error('[build-icons] failed:', err) + process.exit(1) +}) diff --git a/scripts/dev.js b/scripts/dev.js new file mode 100644 index 0000000..2c7ada1 --- /dev/null +++ b/scripts/dev.js @@ -0,0 +1,30 @@ +#!/usr/bin/env node +// electron-vite spawns Electron, but Electron interprets ANY ELECTRON_RUN_AS_NODE +// (including empty string) as "run as Node, strip Electron API." cross-env can only +// set vars, not unset them, so we delete it here before exec'ing electron-vite. + +const { spawn } = require('child_process') +const path = require('path') + +delete process.env.ELECTRON_RUN_AS_NODE + +const isWin = process.platform === 'win32' +const bin = path.join( + __dirname, + '..', + 'node_modules', + '.bin', + isWin ? 'electron-vite.cmd' : 'electron-vite', +) + +const child = spawn(bin, ['dev', ...process.argv.slice(2)], { + stdio: 'inherit', + shell: isWin, + env: process.env, +}) + +child.on('exit', code => process.exit(code ?? 0)) +child.on('error', err => { + console.error(`dev: failed to launch electron-vite: ${err.message}`) + process.exit(1) +}) diff --git a/scripts/doctor.js b/scripts/doctor.js new file mode 100644 index 0000000..b54d2d8 --- /dev/null +++ b/scripts/doctor.js @@ -0,0 +1,19 @@ +#!/usr/bin/env node +// Cross-platform doctor dispatcher. +// On macOS/Linux: runs scripts/doctor.sh. +// On Windows: runs scripts/doctor.ps1 with ExecutionPolicy Bypass. + +const { spawnSync } = require('child_process') +const path = require('path') + +let cmd, args +if (process.platform === 'win32') { + cmd = 'powershell.exe' + args = ['-NoProfile', '-ExecutionPolicy', 'Bypass', '-File', path.join('scripts', 'doctor.ps1')] +} else { + cmd = 'bash' + args = [path.join('scripts', 'doctor.sh')] +} + +const r = spawnSync(cmd, args, { stdio: 'inherit' }) +process.exit(r.status ?? 0) diff --git a/scripts/doctor.ps1 b/scripts/doctor.ps1 new file mode 100644 index 0000000..c4a71a2 --- /dev/null +++ b/scripts/doctor.ps1 @@ -0,0 +1,88 @@ +<# +.SYNOPSIS + Runtime diagnostics for Clui on Windows. + +.DESCRIPTION + Reports the current state of the dev environment + Claude CLI + log file. + Useful when filing an issue or debugging a stuck install. + +.NOTES + Run with: + powershell -ExecutionPolicy Bypass -File scripts\doctor.ps1 +#> + +$ErrorActionPreference = 'Continue' + +function H($t) { Write-Host ""; Write-Host "── $t ──" -ForegroundColor Cyan } +function K($k, $v) { Write-Host (" {0,-24} {1}" -f $k, $v) } + +H "System" +K "OS" ((Get-CimInstance Win32_OperatingSystem -ErrorAction SilentlyContinue).Caption + " (" + [System.Environment]::OSVersion.VersionString + ")") +K "Architecture" $env:PROCESSOR_ARCHITECTURE +K "User" $env:USERNAME +K "PowerShell" $PSVersionTable.PSVersion + +H "Toolchain" +foreach ($cmd in 'node','npm','git','wt') { + try { + $c = Get-Command $cmd -ErrorAction Stop + $ver = & $cmd --version 2>$null | Select-Object -First 1 + K "$cmd" "$($c.Source) ($ver)" + } catch { K "$cmd" "(not on PATH)" } +} + +H "Claude Code" +$candidates = @( + (Join-Path $env:APPDATA 'npm\claude.cmd'), + (Join-Path $env:APPDATA 'npm\claude.exe'), + (Join-Path $env:LOCALAPPDATA 'npm\claude.cmd'), + (Join-Path $env:LOCALAPPDATA 'Programs\claude\claude.exe'), + (Join-Path $env:LOCALAPPDATA 'Volta\bin\claude.exe') +) +$claudeFound = $false +foreach ($p in $candidates) { + if (Test-Path $p) { K "claude (probe)" $p; $claudeFound = $true; break } +} +if (-not $claudeFound) { + $whereOut = & cmd.exe /c 'where claude' 2>$null + if ($LASTEXITCODE -eq 0 -and $whereOut) { K "claude (where)" (($whereOut -split "`r?`n")[0]) } + else { K "claude" "(not found)" } +} + +H "Clui state" +$logFile = Join-Path $env:USERPROFILE '.clui-debug.log' +if (Test-Path $logFile) { + $sz = (Get-Item $logFile).Length + K "log file" "$logFile ($sz bytes)" + Write-Host " last 10 log lines:" + Get-Content $logFile -Tail 10 | ForEach-Object { Write-Host " $_" } +} else { + K "log file" "(not yet created)" +} + +$skillsDir = Join-Path $env:USERPROFILE '.claude\skills' +if (Test-Path $skillsDir) { + $count = (Get-ChildItem $skillsDir -Directory -ErrorAction SilentlyContinue).Count + K "skills dir" "$skillsDir ($count installed)" +} else { + K "skills dir" "(not yet created)" +} + +$projectsDir = Join-Path $env:USERPROFILE '.claude\projects' +if (Test-Path $projectsDir) { + $count = (Get-ChildItem $projectsDir -Directory -ErrorAction SilentlyContinue).Count + K "projects dir" "$projectsDir ($count sessions)" +} else { + K "projects dir" "(not yet created)" +} + +H "Environment (relevant)" +K "PATH (length)" ($env:PATH.Length) +K "APPDATA" $env:APPDATA +K "LOCALAPPDATA" $env:LOCALAPPDATA +K "USERPROFILE" $env:USERPROFILE +K "ELECTRON_RUN_AS_NODE" $(if ($env:ELECTRON_RUN_AS_NODE -ne $null) { "(set: '$env:ELECTRON_RUN_AS_NODE')" } else { "(unset)" }) +K "CLUI_INTERACTIVE_PERMISSIONS_PTY" $(if ($env:CLUI_INTERACTIVE_PERMISSIONS_PTY) { $env:CLUI_INTERACTIVE_PERMISSIONS_PTY } else { "(unset — PTY transport disabled)" }) + +Write-Host "" +Write-Host "Done." -ForegroundColor Green diff --git a/scripts/postinstall.js b/scripts/postinstall.js new file mode 100644 index 0000000..1d759c2 --- /dev/null +++ b/scripts/postinstall.js @@ -0,0 +1,69 @@ +#!/usr/bin/env node +const { spawnSync } = require('child_process') +const path = require('path') +const fs = require('fs') + +const isWin = process.platform === 'win32' + +function spawn(cmd, args, opts = {}) { + return spawnSync(cmd, args, { stdio: 'inherit', ...opts }) +} + +// 1. Apply patches to node_modules (node-gyp recognizes VS 2026, node-pty winpty.gyp +// works on Windows with NoDefaultCurrentDirectoryInExePath, Spectre mitigation off). +// Skipped if no patches/ dir exists. +if (fs.existsSync(path.join(__dirname, '..', 'patches'))) { + const patchBin = path.join( + __dirname, + '..', + 'node_modules', + '.bin', + isWin ? 'patch-package.cmd' : 'patch-package', + ) + if (fs.existsSync(patchBin)) { + const r = spawn(patchBin, [], { shell: isWin }) + if (r.status !== 0) { + console.warn('postinstall: patch-package returned non-zero — patches may not apply on this version') + } + } +} + +// 2. Resolve the local electron-builder binary so we don't rely on PATH/npx. +const builderBin = path.join( + __dirname, + '..', + 'node_modules', + '.bin', + isWin ? 'electron-builder.cmd' : 'electron-builder', +) + +if (!fs.existsSync(builderBin)) { + console.error(`postinstall: electron-builder not found at ${builderBin}`) + process.exit(1) +} + +const builderResult = spawn(builderBin, ['install-app-deps'], { shell: isWin }) + +if (builderResult.error) { + console.error(`postinstall: failed to launch electron-builder: ${builderResult.error.message}`) + process.exit(1) +} + +if (builderResult.status !== 0) { + if (isWin) { + console.warn( + '\npostinstall: electron-builder install-app-deps reported a failure ' + + '(typically node-pty needs Visual Studio Build Tools to recompile).\n' + + 'Treating as non-fatal on Windows because PTY mode is opt-in ' + + '(gated behind CLUI_INTERACTIVE_PERMISSIONS_PTY).\n' + + 'See docs/WINDOWS.md for instructions on enabling PTY mode.\n', + ) + } else { + process.exit(builderResult.status ?? 1) + } +} + +if (process.platform === 'darwin') { + const r = spawn('bash', ['scripts/patch-dev-icon.sh']) + if (r.status !== 0) process.exit(r.status ?? 1) +} diff --git a/scripts/setup.ps1 b/scripts/setup.ps1 new file mode 100644 index 0000000..5b25e80 --- /dev/null +++ b/scripts/setup.ps1 @@ -0,0 +1,97 @@ +<# +.SYNOPSIS + One-time setup check for Clui on Windows. + +.DESCRIPTION + Verifies prerequisites (OS version, Node, npm, Claude CLI) and reports anything missing. + Does NOT modify your system. Read-only diagnostic. + +.NOTES + Run with: + powershell -ExecutionPolicy Bypass -File scripts\setup.ps1 +#> + +$ErrorActionPreference = 'Continue' +$Script:Issues = @() + +function Section($name) { + Write-Host "" + Write-Host "=== $name ===" -ForegroundColor Cyan +} + +function Pass($msg) { Write-Host " [ok] $msg" -ForegroundColor Green } +function Warn($msg) { Write-Host " [warn] $msg" -ForegroundColor Yellow; $Script:Issues += "WARN: $msg" } +function Fail($msg) { Write-Host " [fail] $msg" -ForegroundColor Red; $Script:Issues += "FAIL: $msg" } + +# 1. Windows version (Win10 1809+ for ConPTY) +Section "Operating system" +$osv = [System.Environment]::OSVersion.Version +if ($osv.Major -ge 10 -and ($osv.Build -ge 17763)) { + Pass "Windows $($osv.Major).$($osv.Minor) build $($osv.Build) (ConPTY available)" +} else { + Fail "Windows build $($osv.Build) is below 17763 (Win10 1809). PTY transport will not work." +} + +# 2. Node.js >= 18 +Section "Node.js" +try { + $node = & node --version 2>$null + if ($LASTEXITCODE -eq 0 -and $node -match 'v(\d+)\.') { + $major = [int]$Matches[1] + if ($major -ge 18) { Pass "node $node" } else { Fail "node $node — need >= 18" } + } else { Fail "node not found on PATH" } +} catch { Fail "node not found on PATH" } + +# 3. npm +Section "npm" +try { + $npm = & npm --version 2>$null + if ($LASTEXITCODE -eq 0) { Pass "npm $npm" } else { Fail "npm not on PATH" } +} catch { Fail "npm not on PATH" } + +# 4. Claude Code CLI +Section "Claude Code CLI" +$claudeCandidates = @( + (Join-Path $env:APPDATA 'npm\claude.cmd'), + (Join-Path $env:APPDATA 'npm\claude.exe'), + (Join-Path $env:LOCALAPPDATA 'npm\claude.cmd'), + (Join-Path $env:LOCALAPPDATA 'Programs\claude\claude.exe'), + (Join-Path $env:LOCALAPPDATA 'Volta\bin\claude.exe') +) +$found = $null +foreach ($p in $claudeCandidates) { if (Test-Path $p) { $found = $p; break } } +if (-not $found) { + $whereOut = & cmd.exe /c 'where claude' 2>$null + if ($LASTEXITCODE -eq 0 -and $whereOut) { $found = ($whereOut -split "`r?`n")[0] } +} +if ($found) { Pass "claude CLI: $found" } +else { Fail "claude CLI not found — install with: npm i -g @anthropic-ai/claude-code" } + +# 5. Visual Studio Build Tools (optional — only needed to build node-pty from source) +Section "Visual Studio Build Tools (optional)" +$vswhere = Join-Path ${env:ProgramFiles(x86)} 'Microsoft Visual Studio\Installer\vswhere.exe' +if (Test-Path $vswhere) { + $vsPath = & $vswhere -latest -products '*' -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath 2>$null + if ($vsPath) { Pass "VS Build Tools detected: $vsPath" } + else { Warn "VS Build Tools not detected — required only if you want to recompile node-pty for PTY mode" } +} else { + Warn "vswhere.exe not present — VS Build Tools not installed (optional)" +} + +# 6. Windows Terminal (for 'Open in CLI' default) +Section "Windows Terminal (optional)" +$wt = Get-Command wt.exe -ErrorAction SilentlyContinue +if ($wt) { Pass "wt.exe: $($wt.Source)" } else { Warn "wt.exe not on PATH — 'Open in CLI' will fall back to cmd.exe" } + +# Summary +Section "Summary" +if ($Script:Issues.Count -eq 0) { + Write-Host " All checks passed. Run 'npm install' then 'npm run dev'." -ForegroundColor Green + exit 0 +} else { + Write-Host " $($Script:Issues.Count) issue(s):" -ForegroundColor Yellow + foreach ($i in $Script:Issues) { Write-Host " $i" } + Write-Host "" + Write-Host " See docs\WINDOWS.md for fix instructions." -ForegroundColor Yellow + exit 1 +} diff --git a/src/main/claude/pty-run-manager.ts b/src/main/claude/pty-run-manager.ts index a20148b..a267316 100644 --- a/src/main/claude/pty-run-manager.ts +++ b/src/main/claude/pty-run-manager.ts @@ -22,6 +22,7 @@ import { execSync } from 'child_process' import { appendFileSync, chmodSync, existsSync, statSync } from 'fs' import type { NormalizedEvent, RunOptions, EnrichedError } from '../../shared/types' import { getCliEnv } from '../cli-env' +import { findClaudeBinaryWin, wrapForCmd } from '../platform/win-process' // node-pty is a native module — require at runtime to avoid Vite bundling issues // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -289,6 +290,8 @@ export class PtyRunManager extends EventEmitter { * Ensure it's executable at runtime to avoid "posix_spawnp failed". */ private _ensureSpawnHelperExecutable(): void { + // Windows has no spawn-helper binary; ConPTY needs no permission fix. + if (process.platform === 'win32') return try { const pkgPath = require.resolve('node-pty/package.json') const path = require('path') as typeof import('path') @@ -311,6 +314,10 @@ export class PtyRunManager extends EventEmitter { } private _findClaudeBinary(): string { + if (process.platform === 'win32') { + return findClaudeBinaryWin() + } + const candidates = [ '/usr/local/bin/claude', '/opt/homebrew/bin/claude', @@ -376,7 +383,11 @@ export class PtyRunManager extends EventEmitter { log(`Starting PTY run ${requestId}: ${this.claudeBinary} ${args.join(' ')}`) log(`Prompt: ${options.prompt.substring(0, 200)}`) - const ptyProcess = pty.spawn(this.claudeBinary, args, { + // On Windows, .cmd shims must be launched via cmd.exe — pty.spawn cannot dispatch + // them directly. ConPTY then attaches to the cmd.exe console, which forwards to claude. + const [exe, finalArgs] = + process.platform === 'win32' ? wrapForCmd(this.claudeBinary, args) : [this.claudeBinary, args] + const ptyProcess = pty.spawn(exe, finalArgs, { name: 'xterm-256color', cols: 120, rows: 40, diff --git a/src/main/claude/run-manager.ts b/src/main/claude/run-manager.ts index 7b72949..30323dc 100644 --- a/src/main/claude/run-manager.ts +++ b/src/main/claude/run-manager.ts @@ -1,11 +1,12 @@ import { spawn, execSync, ChildProcess } from 'child_process' import { EventEmitter } from 'events' import { homedir } from 'os' -import { join } from 'path' +import { dirname, join } from 'path' import { StreamParser } from '../stream-parser' import { normalize } from './event-normalizer' import { log as _log } from '../logger' import { getCliEnv } from '../cli-env' +import { findClaudeBinaryWin, killTree, wrapForCmd } from '../platform/win-process' import type { ClaudeEvent, NormalizedEvent, RunOptions, EnrichedError } from '../../shared/types' const MAX_RING_LINES = 100 @@ -116,6 +117,10 @@ export class RunManager extends EventEmitter { } private _findClaudeBinary(): string { + if (process.platform === 'win32') { + return findClaudeBinaryWin() + } + const candidates = [ '/usr/local/bin/claude', '/opt/homebrew/bin/claude', @@ -142,9 +147,10 @@ export class RunManager extends EventEmitter { private _getEnv(): NodeJS.ProcessEnv { const env = getCliEnv() - const binDir = this.claudeBinary.substring(0, this.claudeBinary.lastIndexOf('/')) - if (env.PATH && !env.PATH.includes(binDir)) { - env.PATH = `${binDir}:${env.PATH}` + const binDir = dirname(this.claudeBinary) + const sep = process.platform === 'win32' ? ';' : ':' + if (binDir && env.PATH && !env.PATH.includes(binDir)) { + env.PATH = `${binDir}${sep}${env.PATH}` } return env @@ -212,7 +218,9 @@ export class RunManager extends EventEmitter { log(`Starting run ${requestId}`) } - const child = spawn(this.claudeBinary, args, { + const [exe, finalArgs] = + process.platform === 'win32' ? wrapForCmd(this.claudeBinary, args) : [this.claudeBinary, args] + const child = spawn(exe, finalArgs, { stdio: ['pipe', 'pipe', 'pipe'], cwd, env: this._getEnv(), @@ -354,17 +362,22 @@ export class RunManager extends EventEmitter { if (!handle) return false log(`Cancelling run ${requestId}`) - handle.process.kill('SIGINT') - - // Fallback: SIGKILL if process hasn't exited after 5s. - // Only check exitCode — process.killed is set true by the SIGINT call above, - // so checking !killed would prevent the fallback from ever firing. - setTimeout(() => { - if (handle.process.exitCode === null) { - log(`Force killing run ${requestId} (SIGINT did not terminate)`) - handle.process.kill('SIGKILL') - } - }, 5000) + if (process.platform === 'win32') { + // Windows: signals don't deliver — TerminateProcess + leaked tool subprocesses. + // taskkill /T walks the whole tree and SIGKILL-equivalents the children. + killTree(handle.process.pid) + } else { + handle.process.kill('SIGINT') + // Fallback: SIGKILL if process hasn't exited after 5s. + // Only check exitCode — process.killed is set true by the SIGINT call above, + // so checking !killed would prevent the fallback from ever firing. + setTimeout(() => { + if (handle.process.exitCode === null) { + log(`Force killing run ${requestId} (SIGINT did not terminate)`) + handle.process.kill('SIGKILL') + } + }, 5000) + } return true } diff --git a/src/main/cli-env.ts b/src/main/cli-env.ts index 60efe06..7226a23 100644 --- a/src/main/cli-env.ts +++ b/src/main/cli-env.ts @@ -1,4 +1,5 @@ import { execSync } from 'child_process' +import { getCliPathWin } from './platform/win-process' let cachedPath: string | null = null @@ -15,6 +16,11 @@ function appendPathEntries(target: string[], seen: Set, rawPath: string export function getCliPath(): string { if (cachedPath) return cachedPath + if (process.platform === 'win32') { + cachedPath = getCliPathWin() + return cachedPath + } + const ordered: string[] = [] const seen = new Set() diff --git a/src/main/index.ts b/src/main/index.ts index a14e6c8..7d0cafa 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -1,4 +1,4 @@ -import { app, BrowserWindow, ipcMain, dialog, screen, globalShortcut, Tray, Menu, nativeImage, nativeTheme, shell, systemPreferences, protocol, net } from 'electron' +import { app, BrowserWindow, ipcMain, dialog, screen, globalShortcut, Tray, Menu, nativeImage, nativeTheme, shell, systemPreferences, protocol, net, desktopCapturer, clipboard } from 'electron' import { execFile, spawn } from 'child_process' import { basename, join, resolve, normalize } from 'path' import { existsSync, readdirSync, statSync, createReadStream, mkdirSync, writeFileSync, chmodSync } from 'fs' @@ -410,10 +410,43 @@ function openScriptInTerminal(scriptPath: string, appPath?: string): Promise { + if (process.platform === 'win32') { + await launchWindowsTerminal(sessionId, projectPath) + return + } const scriptPath = createTerminalLaunchScript(projectPath, sessionId) await openScriptInTerminal(scriptPath) } +/** + * Launch Claude in a Windows terminal: prefer Windows Terminal (`wt.exe`), fall back to + * a detached `cmd.exe` window. Both ship with Win10 22H2+ / Win11. + */ +async function launchWindowsTerminal(sessionId: string | null, projectPath: string): Promise { + const claudeArgs = sessionId ? ['claude', '--resume', sessionId] : ['claude'] + // wt.exe is the Windows Terminal launcher. -d sets working directory. + // Try wt.exe first (better UX); fall back to cmd.exe with start /D. + const launchers: Array<{ exe: string; args: string[] }> = [ + { exe: 'wt.exe', args: ['-d', projectPath, ...claudeArgs] }, + { exe: 'cmd.exe', args: ['/c', 'start', '', '/D', projectPath, 'cmd.exe', '/k', ...claudeArgs] }, + ] + for (const { exe, args } of launchers) { + try { + const child = spawn(exe, args, { + cwd: projectPath, + detached: true, + stdio: 'ignore', + windowsHide: false, + }) + child.unref() + return + } catch { + // try next + } + } + throw new Error('Failed to launch any Windows terminal (tried wt.exe, cmd.exe)') +} + async function launchTerminal(terminal: InstalledTerminal, sessionId: string | null, projectPath: string): Promise { if (terminal.launchStrategy === 'open-script') { const scriptPath = createTerminalLaunchScript(projectPath, sessionId) @@ -521,10 +554,26 @@ function createWindow(): void { alwaysOnTop: true, skipTaskbar: true, hasShadow: false, - roundedCorners: true, + // roundedCorners is macOS-only; setting it on Windows is ignored and in some + // Electron 35 builds triggers a brief DWM chrome flash when transparency is + // re-applied. Explicitly mac-only. + ...(process.platform === 'darwin' ? { roundedCorners: true } : {}), + // Windows: thickFrame defaults to true even with frame:false, which keeps the + // DWM "thick frame" + shadow + resize border invisible-but-present. That + // invisible frame is what occasionally flashes a "Clui" title bar when the + // compositor restarts or the window's always-on-top level toggles. Off. + ...(process.platform === 'win32' ? { thickFrame: false } : {}), + // Don't paint anything until ready-to-show fires. Without this, transparent + // windows on Windows can render one frame of system chrome before the + // renderer's transparent body composites over it. + paintWhenInitiallyHidden: false, backgroundColor: '#00000000', show: false, - icon: join(__dirname, '../../resources/icon.icns'), + icon: join( + __dirname, + '../../resources', + process.platform === 'darwin' ? 'icon.icns' : process.platform === 'win32' ? 'icon.ico' : 'icon.png', + ), webPreferences: { preload: join(__dirname, '../preload/index.js'), contextIsolation: true, @@ -543,7 +592,11 @@ function createWindow(): void { // { forward: true } ensures mousemove events still reach the renderer // so it can toggle click-through off when cursor enters interactive UI. mainWindow?.setIgnoreMouseEvents(true, { forward: true }) - if (process.env.ELECTRON_RENDERER_URL) { + // DevTools opens only when CLUI_DEVTOOLS=1 in dev. The detached window has its + // own non-frameless OS chrome, which renders as a phantom title bar above the + // pill on Windows. Off by default; enable on demand for debugging: + // $env:CLUI_DEVTOOLS = "1"; npm run dev + if (process.env.ELECTRON_RENDERER_URL && process.env.CLUI_DEVTOOLS === '1') { mainWindow?.webContents.openDevTools({ mode: 'detach' }) } }) @@ -782,6 +835,9 @@ function getOrCreateGridWindow(): BrowserWindow { hasShadow: false, focusable: false, show: false, + paintWhenInitiallyHidden: false, + ...(process.platform === 'win32' ? { thickFrame: false } : {}), + backgroundColor: '#00000000', webPreferences: { nodeIntegration: false, contextIsolation: true, @@ -1835,9 +1891,90 @@ ipcMain.handle(IPC.ATTACH_FILES, async () => { }) }) -ipcMain.handle(IPC.TAKE_SCREENSHOT, async () => { +/** + * Windows region screenshot: invoke the OS Snipping Tool via the `ms-screenclip:` + * URI, then poll the clipboard for the resulting PNG. Returns null on cancel/timeout. + * + * Why this approach: Windows has no CLI equivalent of macOS's `screencapture -i`. + * Building a custom selection overlay is ~150 lines of UI code; ms-screenclip + * gives us the OS-native experience for free, including multi-monitor handling + * and the freeform/window/fullscreen mode toggles in the Snipping Tool toolbar. + */ +async function takeWindowsRegionScreenshot(): Promise { + // Snapshot existing clipboard image so we can detect a NEW snip vs. pre-existing image. + const previousImage = clipboard.readImage() + const previousHash = previousImage.isEmpty() ? '' : previousImage.toPNG().toString('base64').slice(0, 64) + + // Hide the pill so it's not in the snipping target. + if (mainWindow) { + mainWindow.hide() + await new Promise((r) => setTimeout(r, 150)) + } + + // Trigger the Windows Snipping Tool. shell.openExternal dispatches the URI to + // the OS handler (ms-screenclip → SnippingTool.exe on Win10 1809+ / Win11). + try { + await shell.openExternal('ms-screenclip:') + } catch (err) { + log(`[screenshot] failed to open ms-screenclip: ${(err as Error).message}`) + if (mainWindow) mainWindow.show() + broadcast(IPC.WINDOW_SHOWN) + return null + } + + // Poll the clipboard for up to 60 seconds. The user may take a while to drag-select. + const deadline = Date.now() + 60_000 + const POLL_MS = 200 + let snippedImage: Electron.NativeImage | null = null + + while (Date.now() < deadline) { + await new Promise((r) => setTimeout(r, POLL_MS)) + const cur = clipboard.readImage() + if (cur.isEmpty()) continue + const curHash = cur.toPNG().toString('base64').slice(0, 64) + if (curHash === previousHash) continue + snippedImage = cur + break + } + + // Restore pill regardless of outcome. + if (mainWindow) mainWindow.show() + broadcast(IPC.WINDOW_SHOWN) + + if (!snippedImage) { + log('[screenshot] region capture cancelled or timed out') + return null + } + + const { join } = require('path') + const { tmpdir } = require('os') + const { writeFileSync } = require('fs') + const png = snippedImage.toPNG() + const screenshotPath = join(tmpdir(), `clui-screenshot-${Date.now()}.png`) + writeFileSync(screenshotPath, png) + + return { + id: crypto.randomUUID(), + type: 'image', + name: `screenshot ${++screenshotCounter}.png`, + path: screenshotPath, + mimeType: 'image/png', + dataUrl: `data:image/png;base64,${png.toString('base64')}`, + size: png.length, + } +} + +ipcMain.handle(IPC.TAKE_SCREENSHOT, async (_event, mode?: 'region' | 'fullscreen') => { if (!mainWindow) return null + // Default mode: region on Windows (Snipping Tool), fullscreen elsewhere. + const resolvedMode: 'region' | 'fullscreen' = + mode ?? (process.platform === 'win32' ? 'region' : 'fullscreen') + + if (resolvedMode === 'region' && process.platform === 'win32') { + return takeWindowsRegionScreenshot() + } + if (SPACES_DEBUG) snapshotWindowState('screenshot pre-hide') mainWindow.hide() await new Promise((r) => setTimeout(r, 300)) @@ -1846,11 +1983,40 @@ ipcMain.handle(IPC.TAKE_SCREENSHOT, async () => { const { execSync } = require('child_process') const { join } = require('path') const { tmpdir } = require('os') - const { readFileSync, existsSync } = require('fs') + const { readFileSync, writeFileSync, existsSync } = require('fs') const timestamp = Date.now() const screenshotPath = join(tmpdir(), `clui-screenshot-${timestamp}.png`) + if (process.platform === 'win32') { + // Windows: capture the full screen via Electron's desktopCapturer. + // Picks the display under the cursor (or the primary if none). + const cursor = screen.getCursorScreenPoint() + const display = screen.getDisplayNearestPoint(cursor) || screen.getPrimaryDisplay() + const sources = await desktopCapturer.getSources({ + types: ['screen'], + thumbnailSize: { + width: Math.round(display.size.width * display.scaleFactor), + height: Math.round(display.size.height * display.scaleFactor), + }, + }) + // Match by display id when available; fall back to first source. + const target = + sources.find((s) => String((s as any).display_id) === String(display.id)) || sources[0] + if (!target) return null + const png = target.thumbnail.toPNG() + writeFileSync(screenshotPath, png) + return { + id: crypto.randomUUID(), + type: 'image', + name: `screenshot ${++screenshotCounter}.png`, + path: screenshotPath, + mimeType: 'image/png', + dataUrl: `data:image/png;base64,${png.toString('base64')}`, + size: png.length, + } + } + execSync(`/usr/sbin/screencapture -i "${screenshotPath}"`, { timeout: 30000, stdio: 'ignore', @@ -2170,7 +2336,8 @@ ipcMain.handle(IPC.OPEN_IN_TERMINAL, async (_event, arg: string | null | { sessi } const terminal = await findInstalledTerminal(terminalId) - const logLabel = terminal ? terminal.label : terminalId && terminalId !== 'auto' ? `macOS default (fallback from ${terminalId})` : 'macOS default' + const sysDefault = process.platform === 'win32' ? 'Windows Terminal' : 'macOS default' + const logLabel = terminal ? terminal.label : terminalId && terminalId !== 'auto' ? `${sysDefault} (fallback from ${terminalId})` : sysDefault try { if (terminal) { @@ -2253,6 +2420,41 @@ app.whenReady().then(async () => { app.dock.hide() } + // Windows: setting the AppUserModelId is required for the tray icon, notifications, + // and JumpList to associate with the correct app identity (matches build.appId). + if (process.platform === 'win32') { + app.setAppUserModelId('com.clui.app') + try { + app.setJumpList([ + { + type: 'tasks', + items: [ + { + type: 'task', + title: 'Toggle Clui', + program: process.execPath, + args: '--toggle', + iconPath: process.execPath, + iconIndex: 0, + description: 'Show or hide the Clui overlay', + }, + { + type: 'task', + title: 'New session', + program: process.execPath, + args: '--new', + iconPath: process.execPath, + iconIndex: 0, + description: 'Start a new Claude session', + }, + ], + }, + ]) + } catch (err) { + log(`[jumplist] failed to set: ${(err as Error).message}`) + } + } + // Register custom protocol for serving local file thumbnails to the renderer. // Usage: protocol.handle('clui-local', (request) => { @@ -2303,17 +2505,35 @@ app.whenReady().then(async () => { } - // Primary: Option+Space (2 keys, doesn't conflict with shell) - // Fallback: Cmd+Shift+K kept as secondary shortcut - const registered = globalShortcut.register('Alt+Space', () => toggleWindow('shortcut Alt+Space')) + // Primary: Option+Space on macOS (doesn't conflict with shell, system, or Anthropic's Claude Desktop). + // On Windows, Alt+Space is the system title-bar menu and Ctrl+Alt+Space is Claude Desktop's default; + // Ctrl+Alt+C avoids both and is semantic ("C for Clui"). + // Fallback: Cmd/Ctrl+Shift+K as secondary shortcut, also a global toggle. + const primaryShortcut = process.platform === 'darwin' ? 'Alt+Space' : 'Control+Alt+C' + const registered = globalShortcut.register(primaryShortcut, () => toggleWindow(`shortcut ${primaryShortcut}`)) if (!registered) { - log('Alt+Space shortcut registration failed — macOS input sources may claim it') + log(`${primaryShortcut} shortcut registration failed — another app may claim it`) } globalShortcut.register('CommandOrControl+Shift+K', () => toggleWindow('shortcut Cmd/Ctrl+Shift+K')) - const trayIconPath = join(__dirname, '../../resources/trayTemplate.png') + // Per-tab summon shortcuts: Ctrl+Alt+1 .. Ctrl+Alt+9 (Cmd+Alt+1..9 on macOS). + // Brings the pill forward AND switches to tab N (1-indexed). If tab N doesn't + // exist, the renderer ignores the index. This lets you keep multiple agents in + // different directories and jump straight to a specific one. + for (let i = 1; i <= 9; i++) { + const accelerator = + process.platform === 'darwin' ? `Command+Alt+${i}` : `Control+Alt+${i}` + globalShortcut.register(accelerator, () => { + showWindow(`shortcut ${accelerator}`) + broadcast(IPC.ACTIVATE_TAB_BY_INDEX, i - 1) + }) + } + + // Windows uses a multi-res .ico; macOS uses a template PNG that auto-inverts for menu bar. + const trayIconFile = process.platform === 'win32' ? 'tray.ico' : 'trayTemplate.png' + const trayIconPath = join(__dirname, '../../resources', trayIconFile) const trayIcon = nativeImage.createFromPath(trayIconPath) - trayIcon.setTemplateImage(true) + if (process.platform === 'darwin') trayIcon.setTemplateImage(true) tray = new Tray(trayIcon) tray.setToolTip('Clui — Claude Code UI') tray.on('click', () => toggleWindow('tray click')) diff --git a/src/main/platform/win-process.ts b/src/main/platform/win-process.ts new file mode 100644 index 0000000..2d021a1 --- /dev/null +++ b/src/main/platform/win-process.ts @@ -0,0 +1,114 @@ +// Windows-specific helpers for Claude binary discovery, PATH bootstrap, and process lifecycle. +// All exports are no-ops or undefined when called on non-Windows; callers should still gate +// with `process.platform === 'win32'` so the darwin/linux code paths stay byte-identical. + +import { execSync, spawn } from 'child_process' +import { existsSync } from 'fs' +import { join } from 'path' + +/** + * Probe common Windows locations for the Claude Code CLI, then fall back to `where claude`. + * Returns a path that should be passed through wrapForCmd() before spawn() if it ends in .cmd/.bat. + */ +export function findClaudeBinaryWin(): string { + const appdata = process.env.APPDATA + const localappdata = process.env.LOCALAPPDATA + const userprofile = process.env.USERPROFILE + + const candidates: string[] = [] + if (appdata) { + candidates.push(join(appdata, 'npm', 'claude.cmd')) + candidates.push(join(appdata, 'npm', 'claude.exe')) + } + if (localappdata) { + candidates.push(join(localappdata, 'npm', 'claude.cmd')) + candidates.push(join(localappdata, 'Programs', 'claude', 'claude.exe')) + candidates.push(join(localappdata, 'Volta', 'bin', 'claude.exe')) + } + if (userprofile) { + candidates.push(join(userprofile, '.bun', 'bin', 'claude.exe')) + candidates.push(join(userprofile, '.cargo', 'bin', 'claude.exe')) + } + + for (const c of candidates) { + if (existsSync(c)) return c + } + + try { + const out = execSync('where claude', { + encoding: 'utf-8', + env: process.env, + shell: 'cmd.exe', + }).trim() + const first = out.split(/\r?\n/)[0] + if (first && existsSync(first)) return first + } catch { + // `where` exits 1 if the binary isn't on PATH; fall through to last-resort. + } + + // Last resort: hope cmd.exe finds something via PATHEXT. + return 'claude.cmd' +} + +/** + * Build a PATH suitable for spawning Claude on Windows. Starts from the inherited PATH and + * appends common npm-global locations the user may not have on PATH yet. + */ +export function getCliPathWin(): string { + const seen = new Set() + const ordered: string[] = [] + const split = (raw: string | undefined): void => { + if (!raw) return + for (const entry of raw.split(';')) { + const t = entry.trim().replace(/[\\/]+$/, '') + if (!t) continue + const k = t.toLowerCase() + if (seen.has(k)) continue + seen.add(k) + ordered.push(t) + } + } + + split(process.env.PATH) + if (process.env.APPDATA) split(join(process.env.APPDATA, 'npm')) + if (process.env.LOCALAPPDATA) split(join(process.env.LOCALAPPDATA, 'npm')) + if (process.env.LOCALAPPDATA) split(join(process.env.LOCALAPPDATA, 'Volta', 'bin')) + if (process.env.USERPROFILE) split(join(process.env.USERPROFILE, '.bun', 'bin')) + + return ordered.join(';') +} + +/** + * Wrap (binary, args) so that .cmd/.bat targets are launched via cmd.exe — needed because + * child_process.spawn cannot launch .cmd files directly without shell:true, and shell:true + * mangles arguments containing newlines/quotes (which Clui's --append-system-prompt uses). + * + * Returns [executable, finalArgs] suitable for spawn(executable, finalArgs, ...). + */ +export function wrapForCmd(binary: string, args: string[]): [string, string[]] { + if (/\.(cmd|bat)$/i.test(binary)) { + return ['cmd.exe', ['/c', binary, ...args]] + } + return [binary, args] +} + +/** + * Kill a process and its descendants. On Windows, child.kill('SIGINT'/'SIGTERM') just calls + * TerminateProcess on the immediate child — any tool subprocesses Claude spawned (rg, node, etc.) + * are leaked. taskkill /T walks the process tree. + * + * Returns true if taskkill was attempted, false if the pid was invalid. + */ +export function killTree(pid: number | undefined): boolean { + if (!pid || !Number.isFinite(pid)) return false + try { + spawn('taskkill', ['/pid', String(pid), '/T', '/F'], { + stdio: 'ignore', + detached: true, + windowsHide: true, + }).unref() + return true + } catch { + return false + } +} diff --git a/src/main/process-manager.ts b/src/main/process-manager.ts index add7af0..c0fe321 100644 --- a/src/main/process-manager.ts +++ b/src/main/process-manager.ts @@ -2,9 +2,10 @@ import { spawn, execSync, ChildProcess } from 'child_process' import { EventEmitter } from 'events' import { homedir } from 'os' import { appendFileSync } from 'fs' -import { join } from 'path' +import { dirname, join } from 'path' import { StreamParser } from './stream-parser' import { getCliEnv } from './cli-env' +import { findClaudeBinaryWin, killTree, wrapForCmd } from './platform/win-process' import type { ClaudeEvent, RunOptions } from '../shared/types' const LOG_FILE = join(homedir(), '.clui-debug.log') @@ -36,6 +37,10 @@ export class ProcessManager extends EventEmitter { } private findClaudeBinary(): string { + if (process.platform === 'win32') { + return findClaudeBinaryWin() + } + // Try common locations const candidates = [ '/usr/local/bin/claude', @@ -107,12 +112,15 @@ export class ProcessManager extends EventEmitter { const env = getCliEnv() // Ensure our claude binary's directory is in PATH - const binDir = this.claudeBinary.substring(0, this.claudeBinary.lastIndexOf('/')) - if (env.PATH && !env.PATH.includes(binDir)) { - env.PATH = `${binDir}:${env.PATH}` + const binDir = dirname(this.claudeBinary) + const sep = process.platform === 'win32' ? ';' : ':' + if (binDir && env.PATH && !env.PATH.includes(binDir)) { + env.PATH = `${binDir}${sep}${env.PATH}` } - const child = spawn(this.claudeBinary, args, { + const [exe, finalArgs] = + process.platform === 'win32' ? wrapForCmd(this.claudeBinary, args) : [this.claudeBinary, args] + const child = spawn(exe, finalArgs, { stdio: ['pipe', 'pipe', 'pipe'], cwd, env, @@ -172,13 +180,18 @@ export class ProcessManager extends EventEmitter { if (!handle) return false log(`Cancelling run ${runId}`) - handle.process.kill('SIGINT') - - setTimeout(() => { - if (handle.process.exitCode === null) { - handle.process.kill('SIGTERM') - } - }, 5000) + if (process.platform === 'win32') { + // Windows: SIGINT/SIGTERM map to TerminateProcess (no graceful shutdown) and leak + // tool subprocesses Claude spawned. taskkill /T walks the whole tree. + killTree(handle.process.pid) + } else { + handle.process.kill('SIGINT') + setTimeout(() => { + if (handle.process.exitCode === null) { + handle.process.kill('SIGTERM') + } + }, 5000) + } return true } diff --git a/src/main/skills/installer.ts b/src/main/skills/installer.ts index 93b9c38..73c4b98 100644 --- a/src/main/skills/installer.ts +++ b/src/main/skills/installer.ts @@ -9,10 +9,12 @@ */ import { existsSync, mkdirSync, readFileSync, writeFileSync, renameSync, rmSync, cpSync } from 'fs' -import { join, dirname } from 'path' +import { Readable } from 'stream' +import { pipeline } from 'stream/promises' +import { join } from 'path' import { homedir } from 'os' -import { execSync } from 'child_process' import { randomUUID } from 'crypto' +import * as tar from 'tar' import { SKILLS, type SkillEntry } from './manifest' /** Directory containing bundled skill sources (relative to main process __dirname) */ @@ -90,18 +92,36 @@ async function installGithubSkill( // Download pinned tarball and extract only the skill subdirectory. // GitHub tarballs have a top-level directory like "anthropics-skills-/". // We strip the top-level + intermediate path components to get just the skill files. - const { repo, path, commitSha } = entry.source - const pathDepth = path.split('/').length + 1 // +1 for the github top-level dir + const { repo, path: skillPath, commitSha } = entry.source + const pathDepth = skillPath.split('/').length + 1 // +1 for the github top-level dir const tarballUrl = `https://api.github.com/repos/${repo}/tarball/${commitSha}` - // Use curl + tar — both always available on macOS - const cmd = [ - `curl -sL "${tarballUrl}"`, - '|', - `tar -xz --strip-components=${pathDepth} -C "${tmpDir}" "*/${path}"`, - ].join(' ') - - execSync(cmd, { timeout: 60000, stdio: 'pipe' }) + // Stream-fetch + tar extract — no shell, works on Windows + macOS + Linux. + const ac = new AbortController() + const timeout = setTimeout(() => ac.abort(), 60000) + try { + const res = await fetch(tarballUrl, { + signal: ac.signal, + redirect: 'follow', + headers: { 'User-Agent': 'clui-skills-installer' }, + }) + if (!res.ok || !res.body) { + throw new Error(`HTTP ${res.status} fetching ${tarballUrl}`) + } + // Web ReadableStream → Node Readable for piping into tar. + const nodeStream = Readable.fromWeb(res.body as any) + await pipeline( + nodeStream, + tar.x({ + cwd: tmpDir, + strip: pathDepth, + // Only extract files inside the requested skill path. + filter: (p) => p.includes(`/${skillPath}/`) || p.endsWith(`/${skillPath}`), + }), + ) + } finally { + clearTimeout(timeout) + } // Validate extracted files onStatus({ name: entry.name, state: 'validating' }) diff --git a/src/preload/index.ts b/src/preload/index.ts index 482daf6..482a28c 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -33,7 +33,7 @@ export interface CluiAPI { openInTerminal(sessionId: string | null, projectPath?: string, terminalId?: PreferredTerminalId | null): Promise listInstalledTerminals(): Promise attachFiles(): Promise - takeScreenshot(): Promise + takeScreenshot(mode?: 'region' | 'fullscreen'): Promise pasteImage(dataUrl: string): Promise transcribeAudio(audioBase64: string): Promise<{ error: string | null; errorType?: string; transcript: string | null }> fixWhisper(): Promise<{ ok: boolean; error?: string }> @@ -87,6 +87,7 @@ export interface CluiAPI { onError(callback: (tabId: string, error: EnrichedError) => void): () => void onSkillStatus(callback: (status: { name: string; state: string; error?: string; reason?: string }) => void): () => void onWindowShown(callback: () => void): () => void + onActivateTabByIndex(callback: (index: number) => void): () => void // ─── Auto-update ─── checkForUpdate(): Promise @@ -111,7 +112,7 @@ const api: CluiAPI = { openInTerminal: (sessionId, projectPath, terminalId) => ipcRenderer.invoke(IPC.OPEN_IN_TERMINAL, { sessionId, projectPath, terminalId }), listInstalledTerminals: () => ipcRenderer.invoke(IPC.LIST_INSTALLED_TERMINALS), attachFiles: () => ipcRenderer.invoke(IPC.ATTACH_FILES), - takeScreenshot: () => ipcRenderer.invoke(IPC.TAKE_SCREENSHOT), + takeScreenshot: (mode?: 'region' | 'fullscreen') => ipcRenderer.invoke(IPC.TAKE_SCREENSHOT, mode), pasteImage: (dataUrl) => ipcRenderer.invoke(IPC.PASTE_IMAGE, dataUrl), transcribeAudio: (audioBase64) => ipcRenderer.invoke(IPC.TRANSCRIBE_AUDIO, audioBase64), fixWhisper: () => ipcRenderer.invoke(IPC.FIX_WHISPER), @@ -209,6 +210,12 @@ const api: CluiAPI = { return () => ipcRenderer.removeListener(IPC.WINDOW_SHOWN, handler) }, + onActivateTabByIndex: (callback) => { + const handler = (_e: Electron.IpcRendererEvent, index: number) => callback(index) + ipcRenderer.on(IPC.ACTIVATE_TAB_BY_INDEX, handler) + return () => ipcRenderer.removeListener(IPC.ACTIVATE_TAB_BY_INDEX, handler) + }, + // ─── Auto-update ─── checkForUpdate: () => ipcRenderer.invoke(IPC.CHECK_FOR_UPDATE), installUpdate: () => ipcRenderer.invoke(IPC.INSTALL_UPDATE), diff --git a/src/renderer/components/ConversationView.tsx b/src/renderer/components/ConversationView.tsx index 2b1ddc3..6e155e5 100644 --- a/src/renderer/components/ConversationView.tsx +++ b/src/renderer/components/ConversationView.tsx @@ -19,6 +19,7 @@ import { PermissionCard } from './PermissionCard' import { PermissionDeniedCard } from './PermissionDeniedCard' import { getFileIcon } from './FileMentionMenu' import { useColors, useThemeStore } from '../theme' +import { SUMMON_SHORTCUT } from '../utils/shortcuts' import type { Message, Attachment } from '../../shared/types' // ─── Constants ─── @@ -338,7 +339,7 @@ function EmptyState() { Choose folder - Press ⌥ + Space to show/hide this overlay + Press {SUMMON_SHORTCUT} to show/hide this overlay ) diff --git a/src/renderer/components/SearchPanel.tsx b/src/renderer/components/SearchPanel.tsx index 7130e2f..f7bd09a 100644 --- a/src/renderer/components/SearchPanel.tsx +++ b/src/renderer/components/SearchPanel.tsx @@ -4,6 +4,7 @@ import { MagnifyingGlass, SpinnerGap, X, Clock, FolderSimple, ArrowRight } from import { useSessionStore } from '../stores/sessionStore' import { useColors } from '../theme' import { shortPath, timeAgo } from '../utils/format' +import { shortcut } from '../utils/shortcuts' import type { SearchResult } from '../../shared/types' /** Confidence label from score. */ @@ -424,7 +425,7 @@ export function SearchPanel() { fontSize: 10, color: colors.textTertiary, opacity: 0.5, fontFamily: 'monospace', marginTop: 2, }}> - Cmd+Shift+F + {shortcut('Shift', 'F')} )} diff --git a/src/renderer/components/StatusBar.tsx b/src/renderer/components/StatusBar.tsx index 00f72d5..57924cf 100644 --- a/src/renderer/components/StatusBar.tsx +++ b/src/renderer/components/StatusBar.tsx @@ -336,7 +336,7 @@ function TerminalLaunchControl({ const currentDescription = selectedTerminal ? `Launches in ${selectedTerminal.label}` : preferredTerminalId === 'auto' - ? 'Launches in your macOS default terminal app' + ? 'Launches in your default terminal app' : 'Launches in your saved terminal app' return ( @@ -403,7 +403,7 @@ function TerminalLaunchControl({ Open in CLI
- Pick an installed terminal to save it as the launcher. Automatic uses the macOS default handler. + Pick an installed terminal to save it as the launcher. Automatic uses the system default.
@@ -418,7 +418,7 @@ function TerminalLaunchControl({
Automatic
- Use macOS default terminal app + Use the system default terminal app
{selectedTerminalValue === 'auto' && } @@ -434,7 +434,7 @@ function TerminalLaunchControl({ {!terminalsLoading && terminals.length === 0 && (
- No individual terminal apps were detected. Automatic still uses whatever macOS opens for terminal scripts. + No individual terminal apps were detected. Automatic still uses whatever the system opens for terminal scripts.
)} diff --git a/src/shared/types.ts b/src/shared/types.ts index ad96496..40835e6 100644 --- a/src/shared/types.ts +++ b/src/shared/types.ts @@ -493,6 +493,7 @@ export const IPC = { SET_WINDOW_WIDTH: 'clui:set-window-width', HIDE_WINDOW: 'clui:hide-window', WINDOW_SHOWN: 'clui:window-shown', + ACTIVATE_TAB_BY_INDEX: 'clui:activate-tab-by-index', SET_IGNORE_MOUSE_EVENTS: 'clui:set-ignore-mouse-events', START_WINDOW_DRAG: 'clui:start-window-drag', RESET_WINDOW_POSITION: 'clui:reset-window-position',