exiouss 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of exiouss might be problematic. Click here for more details.

@@ -0,0 +1,132 @@
1
+ # ══════════════════════════════════════════════════════════════════════════
2
+ # UNIVERSAL NATIVE TEXT EXTRACTOR v5.2 (FORCE MODE)
3
+ # Specialized for Chrome/Edge/Firefox Legacy Bridges
4
+ # ══════════════════════════════════════════════════════════════════════════
5
+
6
+ Add-Type -AssemblyName UIAutomationClient
7
+ Add-Type -AssemblyName UIAutomationTypes
8
+
9
+ $OutputEncoding = [System.Text.Encoding]::UTF8
10
+
11
+ try {
12
+ $sig = @'
13
+ [DllImport("user32.dll")] public static extern IntPtr GetForegroundWindow();
14
+ [DllImport("user32.dll")] public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
15
+ [DllImport("user32.dll")] public static extern int GetWindowText(IntPtr hWnd, System.Text.StringBuilder lpString, int nMaxCount);
16
+ [DllImport("user32.dll")] public static extern int GetClassName(IntPtr hWnd, System.Text.StringBuilder lpString, int nMaxCount);
17
+ [DllImport("user32.dll")] public static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
18
+ '@
19
+ $user32 = Add-Type -MemberDefinition $sig -Name "Win32" -Namespace Win32Functions -PassThru
20
+
21
+ $hWnd = $user32::GetForegroundWindow()
22
+ if ($hWnd -eq [IntPtr]::Zero) { exit }
23
+
24
+ # Get Process ID for targeted search
25
+ $targetPid = 0
26
+ $user32::GetWindowThreadProcessId($hWnd, [ref]$targetPid) | Out-Null
27
+
28
+ # 🎯 STEP 1: TARGETED BRIDGE SEARCH
29
+ # Specifically look for Chrome_LegacyWindow (The UIA Port)
30
+ function Find-Bridge($parent) {
31
+ $child = [IntPtr]::Zero
32
+ while ($true) {
33
+ $child = $user32::FindWindowEx($parent, $child, $null, $null)
34
+ if ($child -eq [IntPtr]::Zero) { break }
35
+
36
+ $sb = New-Object System.Text.StringBuilder 256
37
+ $user32::GetClassName($child, $sb, 256) | Out-Null
38
+ $className = $sb.ToString()
39
+
40
+ # Browser UIA Bridges
41
+ if ($className -match "(Chrome_LegacyWindow|Chrome_RenderWidgetHostHWND|Intermediate D3D Window|MozillaWindowClass)") {
42
+ return $child
43
+ }
44
+
45
+ $sub = Find-Bridge $child
46
+ if ($sub -ne [IntPtr]::Zero) { return $sub }
47
+ }
48
+ return [IntPtr]::Zero
49
+ }
50
+
51
+ $hBridge = Find-Bridge $hWnd
52
+ $root = $null
53
+
54
+ if ($hBridge -ne [IntPtr]::Zero) {
55
+ $root = [System.Windows.Automation.AutomationElement]::FromHandle($hBridge)
56
+ } else {
57
+ $root = [System.Windows.Automation.AutomationElement]::FromHandle($hWnd)
58
+ }
59
+
60
+ # 🎯 STEP 2: ACCESSIBILITY FORCE-ACTIVATE
61
+ try {
62
+ for ($i=0; $i -lt 4; $i++) {
63
+ $null = $root.GetCurrentPropertyValue([System.Windows.Automation.AutomationElement]::NameProperty)
64
+ $null = $root.GetSupportedPatterns()
65
+ Start-Sleep -Milliseconds 150
66
+ }
67
+ } catch {}
68
+
69
+ $textBuffer = New-Object System.Text.StringBuilder
70
+ $seenText = New-Object System.Collections.Generic.HashSet[string]
71
+ $startTime = [DateTime]::Now
72
+
73
+ function Add-CleanText($text) {
74
+ if ($null -eq $text) { return }
75
+ $clean = $text.Replace("`r", " ").Replace("`n", " ").Trim()
76
+ $clean = [regex]::Replace($clean, "\s+", " ")
77
+ if ($clean.Length -le 1 -or $clean -match "^(Search|Close|Minimize|Maximize|Restore|Bookmark|Extensions|New Tab|Address and search bar|Profile|Downloads|History|Menu|Tabs|Reload|Forward|Back|View site information)$") { return }
78
+
79
+ $norm = $clean.ToLower()
80
+ if (-not $seenText.Contains($norm)) {
81
+ [void]$textBuffer.AppendLine($clean)
82
+ [void]$seenText.Add($norm)
83
+ }
84
+ }
85
+
86
+ function Walk($element, $depth) {
87
+ if ($depth -gt 60 -or ([DateTime]::Now - $startTime).TotalSeconds -gt 5) { return }
88
+ try {
89
+ # Extract Value or Text
90
+ Add-CleanText $element.Current.Name
91
+
92
+ try {
93
+ $content = $element.GetCurrentPattern([System.Windows.Automation.TextPattern]::Pattern).DocumentRange.GetText(-1)
94
+ $content.Split("`n") | ForEach-Object { Add-CleanText $_ }
95
+ } catch {}
96
+
97
+ $children = $element.FindAll([System.Windows.Automation.TreeScope]::Children, [System.Windows.Automation.Condition]::TrueCondition)
98
+ foreach ($child in $children) { Walk $child ($depth + 1) }
99
+ } catch {}
100
+ }
101
+
102
+ # 🎯 STEP 3: DUAL-SEARCH STRATEGY
103
+ # A) Try to find a Document within the found handle
104
+ $docCond = New-Object System.Windows.Automation.PropertyCondition([System.Windows.Automation.AutomationElement]::ControlTypeProperty, [System.Windows.Automation.ControlType]::Document)
105
+ $doc = $root.FindFirst([System.Windows.Automation.TreeScope]::Descendants, $docCond)
106
+
107
+ if ($null -ne $doc) {
108
+ Walk $doc 0
109
+ }
110
+
111
+ # B) GLOBAL FALLBACK: Search entire UI tree filtered by Process ID
112
+ if ($textBuffer.Length -lt 50) {
113
+ $procCond = New-Object System.Windows.Automation.PropertyCondition([System.Windows.Automation.AutomationElement]::ProcessIdProperty, [int]$targetPid)
114
+ $orCond = New-Object System.Windows.Automation.OrCondition($docCond, $procCond)
115
+ $globalDocs = [System.Windows.Automation.AutomationElement]::RootElement.FindAll([System.Windows.Automation.TreeScope]::Descendants, $orCond)
116
+ foreach ($g in $globalDocs) {
117
+ # Only walk if it's actually a document or has our PID
118
+ if ($g.Current.ProcessId -eq $targetPid) { Walk $g 0 }
119
+ }
120
+ }
121
+
122
+ $result = $textBuffer.ToString().Trim()
123
+ if ($result.Length -gt 0) {
124
+ Write-Output $result
125
+ } else {
126
+ $sb = New-Object System.Text.StringBuilder 256
127
+ $user32::GetWindowText($hWnd, $sb, 256) | Out-Null
128
+ Write-Output "TARGET: $($sb.ToString())"
129
+ }
130
+ } catch {
131
+ Write-Output "ERROR: $($_.Exception.Message)"
132
+ }
package/config.json ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "prompt": "Solve this with 100% accuracy. Think step-by-step for every part of the question to be sure. If the question is an MCQ, provide the option letter along with the full option text in your answer.",
3
+ "proxy": ""
4
+ }
package/index.html ADDED
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <link rel="stylesheet" href="styles.css">
5
+ </head>
6
+ <body>
7
+ <div id="batch-counter" style="position:fixed;top:0;left:0;font-size:9px;color:rgba(148, 163, 184, 0.4);z-index:100;">[0/10]</div>
8
+ <div id="container">
9
+ <div id="answer-area"></div>
10
+ </div>
11
+ <script src="renderer.js"></script>
12
+ </body>
13
+ </html>