ft-scout 9.0.2 → 9.0.4

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.
Files changed (79) hide show
  1. package/.firebase/hosting.d2Vi.cache +7 -7
  2. package/README.md +76 -83
  3. package/bin/src/commands/agent.d.ts.map +1 -1
  4. package/bin/src/commands/agent.js +13 -223
  5. package/bin/src/commands/agent.js.map +1 -1
  6. package/bin/src/commands/plan.d.ts.map +1 -1
  7. package/bin/src/commands/plan.js +45 -18
  8. package/bin/src/commands/plan.js.map +1 -1
  9. package/bin/src/engine/actionVerifier.d.ts.map +1 -1
  10. package/bin/src/engine/actionVerifier.js +61 -9
  11. package/bin/src/engine/actionVerifier.js.map +1 -1
  12. package/bin/src/engine/agentEngine.d.ts.map +1 -1
  13. package/bin/src/engine/agentEngine.js +459 -547
  14. package/bin/src/engine/agentEngine.js.map +1 -1
  15. package/bin/src/engine/agentState.d.ts.map +1 -1
  16. package/bin/src/engine/agentState.js +0 -64
  17. package/bin/src/engine/agentState.js.map +1 -1
  18. package/bin/src/engine/browser/browserController.d.ts.map +1 -1
  19. package/bin/src/engine/browser/browserController.js +8 -0
  20. package/bin/src/engine/browser/browserController.js.map +1 -1
  21. package/bin/src/engine/computer/computerController.d.ts.map +1 -1
  22. package/bin/src/engine/computer/computerController.js +479 -269
  23. package/bin/src/engine/computer/computerController.js.map +1 -1
  24. package/bin/src/engine/computer/index.d.ts.map +1 -1
  25. package/bin/src/engine/computer/index.js +1 -0
  26. package/bin/src/engine/computer/index.js.map +1 -1
  27. package/bin/src/engine/computer/mockComputer.d.ts.map +1 -0
  28. package/bin/src/engine/computer/mockComputer.js +164 -0
  29. package/bin/src/engine/computer/mockComputer.js.map +1 -0
  30. package/bin/src/engine/runtime/agentRuntime.d.ts.map +1 -0
  31. package/bin/src/engine/runtime/agentRuntime.js +829 -0
  32. package/bin/src/engine/runtime/agentRuntime.js.map +1 -0
  33. package/bin/src/engine/runtime/index.d.ts.map +1 -0
  34. package/bin/src/engine/runtime/index.js +2 -0
  35. package/bin/src/engine/runtime/index.js.map +1 -0
  36. package/bin/src/engine/safety.d.ts.map +1 -1
  37. package/bin/src/engine/safety.js +49 -25
  38. package/bin/src/engine/safety.js.map +1 -1
  39. package/bin/src/engine/toolRegistry.d.ts.map +1 -1
  40. package/bin/src/engine/toolRegistry.js +162 -81
  41. package/bin/src/engine/toolRegistry.js.map +1 -1
  42. package/bin/src/engine/voiceEngine.d.ts.map +1 -1
  43. package/bin/src/engine/voiceEngine.js +0 -1
  44. package/bin/src/engine/voiceEngine.js.map +1 -1
  45. package/bin/src/engine/workspace/agentWorkspace.d.ts.map +1 -0
  46. package/bin/src/engine/workspace/agentWorkspace.js +484 -0
  47. package/bin/src/engine/workspace/agentWorkspace.js.map +1 -0
  48. package/bin/src/engine/workspace/index.d.ts.map +1 -0
  49. package/bin/src/engine/workspace/index.js +2 -0
  50. package/bin/src/engine/workspace/index.js.map +1 -0
  51. package/bin/src/index.js +4 -5
  52. package/bin/src/index.js.map +1 -1
  53. package/bin/src/server/server.d.ts.map +1 -1
  54. package/bin/src/server/server.js +25 -4
  55. package/bin/src/server/server.js.map +1 -1
  56. package/bin/src/utils/auth.d.ts.map +1 -1
  57. package/bin/src/utils/auth.js +67 -49
  58. package/bin/src/utils/auth.js.map +1 -1
  59. package/bin/src/utils/branding.js +1 -1
  60. package/bin/src/utils/payment.d.ts.map +1 -1
  61. package/bin/src/utils/payment.js +15 -1
  62. package/bin/src/utils/payment.js.map +1 -1
  63. package/bin/src/utils/pricing.js +1 -1
  64. package/bin/src/utils/pricing.js.map +1 -1
  65. package/bin/src/utils/razorpay.d.ts.map +1 -1
  66. package/bin/src/utils/razorpay.js +10 -2
  67. package/bin/src/utils/razorpay.js.map +1 -1
  68. package/downloads/invoice-2026-03.pdf +1 -0
  69. package/package.json +1 -1
  70. package/web/app.js +54 -135
  71. package/web/styles.css +2 -2
  72. package/bin/src/engine/appControl.d.ts.map +0 -1
  73. package/bin/src/engine/appControl.js +0 -2320
  74. package/bin/src/engine/appControl.js.map +0 -1
  75. package/bin/src/engine/liveScreenEngine.d.ts.map +0 -1
  76. package/bin/src/engine/liveScreenEngine.js +0 -421
  77. package/bin/src/engine/liveScreenEngine.js.map +0 -1
  78. package/bin/src/engine/scripts/winCapture.ps1 +0 -248
  79. package/downloads/INVOICE_2026_ACME.pdf +0 -1
@@ -1,248 +0,0 @@
1
- param(
2
- [string]$OutPath,
3
- [switch]$InfoOnly
4
- )
5
-
6
- $source = @"
7
- using System;
8
- using System.Drawing;
9
- using System.Drawing.Imaging;
10
- using System.Runtime.InteropServices;
11
- using System.Text;
12
- using System.Threading;
13
- using System.Collections.Generic;
14
-
15
- public class WinCaptureResult {
16
- public bool success;
17
- public string savedPath;
18
- public int width;
19
- public int height;
20
- public int cursorX;
21
- public int cursorY;
22
- public string activeWindow;
23
- public string[] visibleWindows;
24
- public string error;
25
- }
26
-
27
- public class WinCaptureHelper {
28
- [DllImport("user32.dll", SetLastError = true)]
29
- public static extern IntPtr OpenInputDesktop(uint dwFlags, bool fInherit, uint dwDesiredAccess);
30
-
31
- [DllImport("user32.dll", SetLastError = true)]
32
- public static extern IntPtr OpenDesktop(string lpszDesktop, uint dwFlags, bool fInherit, uint dwDesiredAccess);
33
-
34
- [DllImport("user32.dll", SetLastError = true)]
35
- public static extern bool SetThreadDesktop(IntPtr hDesktop);
36
-
37
- [DllImport("user32.dll", SetLastError = true)]
38
- public static extern bool CloseDesktop(IntPtr hDesktop);
39
-
40
- [DllImport("user32.dll")]
41
- public static extern IntPtr GetDC(IntPtr hWnd);
42
-
43
- [DllImport("user32.dll")]
44
- public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
45
-
46
- [DllImport("gdi32.dll")]
47
- public static extern IntPtr CreateCompatibleDC(IntPtr hdc);
48
-
49
- [DllImport("gdi32.dll")]
50
- public static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight);
51
-
52
- [DllImport("gdi32.dll")]
53
- public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);
54
-
55
- [DllImport("gdi32.dll")]
56
- public static extern bool DeleteDC(IntPtr hdc);
57
-
58
- [DllImport("gdi32.dll")]
59
- public static extern bool DeleteObject(IntPtr hObject);
60
-
61
- [DllImport("gdi32.dll")]
62
- public static extern bool BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
63
-
64
- [DllImport("user32.dll")]
65
- public static extern int GetSystemMetrics(int nIndex);
66
-
67
- public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
68
-
69
- [DllImport("user32.dll")]
70
- public static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam);
71
-
72
- [DllImport("user32.dll", CharSet = CharSet.Auto)]
73
- public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
74
-
75
- [DllImport("user32.dll")]
76
- public static extern bool IsWindowVisible(IntPtr hWnd);
77
-
78
- [DllImport("user32.dll")]
79
- public static extern IntPtr GetForegroundWindow();
80
-
81
- [StructLayout(LayoutKind.Sequential)]
82
- public struct POINT {
83
- public int X;
84
- public int Y;
85
- }
86
-
87
- [DllImport("user32.dll")]
88
- public static extern bool GetCursorPos(out POINT lpPoint);
89
-
90
- const uint DESKTOP_ACCESS = 0x01FF | 0x00020000;
91
- const int SM_CXSCREEN = 0;
92
- const int SM_CYSCREEN = 1;
93
- const int SRCCOPY = 0x00CC0020;
94
- const int CAPTUREBLT = 0x40000000;
95
-
96
- public static WinCaptureResult GetInfo() {
97
- var res = new WinCaptureResult();
98
- res.success = true;
99
- res.error = "";
100
- var visibleWindows = new List<string>();
101
-
102
- Thread worker = new Thread(() => {
103
- IntPtr hDesk = OpenInputDesktop(0, false, DESKTOP_ACCESS);
104
- if (hDesk == IntPtr.Zero) {
105
- hDesk = OpenDesktop("Default", 0, false, DESKTOP_ACCESS);
106
- }
107
- if (hDesk != IntPtr.Zero) {
108
- SetThreadDesktop(hDesk);
109
- }
110
-
111
- res.width = GetSystemMetrics(SM_CXSCREEN);
112
- res.height = GetSystemMetrics(SM_CYSCREEN);
113
- if (res.width <= 0) res.width = 1920;
114
- if (res.height <= 0) res.height = 1080;
115
-
116
- POINT pt;
117
- if (GetCursorPos(out pt)) {
118
- res.cursorX = pt.X;
119
- res.cursorY = pt.Y;
120
- }
121
-
122
- IntPtr fg = GetForegroundWindow();
123
- if (fg != IntPtr.Zero) {
124
- var sbFg = new StringBuilder(256);
125
- GetWindowText(fg, sbFg, 256);
126
- res.activeWindow = sbFg.ToString().Trim();
127
- } else {
128
- res.activeWindow = "";
129
- }
130
-
131
- EnumWindows((hWnd, lParam) => {
132
- if (IsWindowVisible(hWnd)) {
133
- var title = new StringBuilder(256);
134
- GetWindowText(hWnd, title, 256);
135
- string t = title.ToString().Trim();
136
- if (t.Length > 0 && !visibleWindows.Contains(t) && t != "Program Manager" && t != "Windows Input Experience") {
137
- visibleWindows.Add(t);
138
- }
139
- }
140
- return true;
141
- }, IntPtr.Zero);
142
-
143
- if (hDesk != IntPtr.Zero) {
144
- CloseDesktop(hDesk);
145
- }
146
- });
147
-
148
- worker.SetApartmentState(ApartmentState.STA);
149
- worker.Start();
150
- worker.Join();
151
-
152
- res.visibleWindows = visibleWindows.ToArray();
153
- return res;
154
- }
155
-
156
- public static WinCaptureResult Capture(string filePath) {
157
- var res = new WinCaptureResult();
158
- res.savedPath = filePath;
159
- res.error = "";
160
- var visibleWindows = new List<string>();
161
-
162
- Thread worker = new Thread(() => {
163
- IntPtr hDesk = OpenInputDesktop(0, false, DESKTOP_ACCESS);
164
- if (hDesk == IntPtr.Zero) {
165
- hDesk = OpenDesktop("Default", 0, false, DESKTOP_ACCESS);
166
- }
167
- if (hDesk != IntPtr.Zero) {
168
- SetThreadDesktop(hDesk);
169
- }
170
-
171
- res.width = GetSystemMetrics(SM_CXSCREEN);
172
- res.height = GetSystemMetrics(SM_CYSCREEN);
173
- if (res.width <= 0) res.width = 1920;
174
- if (res.height <= 0) res.height = 1080;
175
-
176
- POINT pt;
177
- if (GetCursorPos(out pt)) {
178
- res.cursorX = pt.X;
179
- res.cursorY = pt.Y;
180
- }
181
-
182
- IntPtr fg = GetForegroundWindow();
183
- if (fg != IntPtr.Zero) {
184
- var sbFg = new StringBuilder(256);
185
- GetWindowText(fg, sbFg, 256);
186
- res.activeWindow = sbFg.ToString().Trim();
187
- } else {
188
- res.activeWindow = "";
189
- }
190
-
191
- EnumWindows((hWnd, lParam) => {
192
- if (IsWindowVisible(hWnd)) {
193
- var title = new StringBuilder(256);
194
- GetWindowText(hWnd, title, 256);
195
- string t = title.ToString().Trim();
196
- if (t.Length > 0 && !visibleWindows.Contains(t) && t != "Program Manager" && t != "Windows Input Experience") {
197
- visibleWindows.Add(t);
198
- }
199
- }
200
- return true;
201
- }, IntPtr.Zero);
202
-
203
- try {
204
- IntPtr hdcSrc = GetDC(IntPtr.Zero);
205
- IntPtr hdcDest = CreateCompatibleDC(hdcSrc);
206
- IntPtr hBitmap = CreateCompatibleBitmap(hdcSrc, res.width, res.height);
207
- IntPtr hOld = SelectObject(hdcDest, hBitmap);
208
- bool bltOk = BitBlt(hdcDest, 0, 0, res.width, res.height, hdcSrc, 0, 0, SRCCOPY | CAPTUREBLT);
209
-
210
- SelectObject(hdcDest, hOld);
211
- DeleteDC(hdcDest);
212
- ReleaseDC(IntPtr.Zero, hdcSrc);
213
-
214
- if (bltOk) {
215
- using (Bitmap bmp = Bitmap.FromHbitmap(hBitmap)) {
216
- bmp.Save(filePath, ImageFormat.Png);
217
- }
218
- res.success = true;
219
- } else {
220
- res.error = "BitBlt failed";
221
- }
222
- DeleteObject(hBitmap);
223
- } catch (Exception ex) {
224
- res.error = ex.Message;
225
- }
226
-
227
- if (hDesk != IntPtr.Zero) {
228
- CloseDesktop(hDesk);
229
- }
230
- });
231
-
232
- worker.SetApartmentState(ApartmentState.STA);
233
- worker.Start();
234
- worker.Join();
235
-
236
- res.visibleWindows = visibleWindows.ToArray();
237
- return res;
238
- }
239
- }
240
- "@
241
-
242
- Add-Type -TypeDefinition $source -ReferencedAssemblies System.Drawing, System.Windows.Forms
243
-
244
- if ($InfoOnly) {
245
- [WinCaptureHelper]::GetInfo() | ConvertTo-Json -Compress
246
- } else {
247
- [WinCaptureHelper]::Capture($OutPath) | ConvertTo-Json -Compress
248
- }
@@ -1 +0,0 @@
1
- %PDF-1.4 Mock Vendor Invoice September 2026 Amount Due: $3,450.00 Date: 2026-09-12