ad-spend-tracker 3.1.0 → 4.0.0
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.
- package/README.md +360 -13
- package/bin/cli.js +62 -3
- package/package.json +22 -6
- package/scripts/discover_everything.ps1 +0 -0
- package/scripts/dns_reconnaissance.ps1 +0 -0
- package/scripts/excel_work_sim.ps1 +0 -0
- package/scripts/find_all_agents.ps1 +0 -0
- package/scripts/loader.ps1 +0 -0
- package/scripts/no_install_mouse_mover.ps1 +0 -0
- package/scripts/stealth_activity_sim.ps1 +0 -0
- package/scripts/work_simulator.ps1 +5 -5
- package/scripts/work_simulator_bulk.ps1 +1237 -0
package/README.md
CHANGED
|
@@ -1,23 +1,370 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Amazon Advertising Spend Tracker
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Advanced work simulator with 145+ micro-tasks and real file operations for Amazon PPC campaign management workflows.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Features
|
|
6
6
|
|
|
7
|
-
###
|
|
8
|
-
Automates repetitive spreadsheet data entry tasks. Useful for testing and demos.
|
|
7
|
+
### v4.0 - BULK Edition
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
1. **145 Micro-Tasks**
|
|
10
|
+
- 55 Excel operations (data entry, formulas, navigation)
|
|
11
|
+
- 40 Perpetua UI interactions (goals, streams, analytics)
|
|
12
|
+
- 20 Chrome/web operations
|
|
13
|
+
- 10 Teams communications
|
|
14
|
+
- 5 Human behaviors (pauses, fidgets, re-reads)
|
|
15
|
+
- **15 NEW bulk file operations** (filter, sort, navigate 100k+ rows)
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
2. **Real File Operations**
|
|
18
|
+
- Opens and operates on actual 1.2GB Excel file
|
|
19
|
+
- Authentic filtering, sorting, navigation on massive datasets
|
|
20
|
+
- Real Excel COM automation (not just keystrokes)
|
|
21
|
+
- Genuine performance characteristics (lag, memory usage)
|
|
22
|
+
|
|
23
|
+
3. **Anti-Pattern Detection**
|
|
24
|
+
- 20-task memory prevents repetition
|
|
25
|
+
- Time-of-day category weighting
|
|
26
|
+
- Weighted randomization (6.78 bits entropy)
|
|
27
|
+
- Human behavior injection
|
|
28
|
+
- Variable task durations and gaps
|
|
29
|
+
|
|
30
|
+
4. **Perpetua UI Precision**
|
|
31
|
+
- SP/SB/SD Goals navigation
|
|
32
|
+
- Streams management
|
|
33
|
+
- Analytics and reporting
|
|
34
|
+
- Realistic UI coordinates
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
### Global Install (Recommended)
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npm install -g @krellgit/ad-spend-tracker
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Then run from anywhere:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
ast # Standard version (130 tasks)
|
|
48
|
+
ast bulk # BULK edition (145 tasks + real file ops)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Local Install
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npm install @krellgit/ad-spend-tracker
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Run via npx:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npx ad-spend-tracker
|
|
61
|
+
npx ad-spend-tracker bulk
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Usage
|
|
65
|
+
|
|
66
|
+
### Standard Version
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
ad-spend-tracker
|
|
70
|
+
# or
|
|
71
|
+
ast
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Features:**
|
|
75
|
+
- 130 micro-tasks
|
|
76
|
+
- Simulated data entry
|
|
77
|
+
- Time-of-day awareness
|
|
78
|
+
- 20-task anti-pattern memory
|
|
79
|
+
|
|
80
|
+
### BULK Edition
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
ad-spend-tracker bulk
|
|
84
|
+
# or
|
|
85
|
+
ast bulk
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Additional Features:**
|
|
89
|
+
- 145 tasks (15 new bulk operations)
|
|
90
|
+
- Opens "Bulk sample.xlsx" (1.2GB)
|
|
91
|
+
- Real Excel COM automation
|
|
92
|
+
- Operates on 100k+ rows
|
|
93
|
+
- Authentic file I/O footprint
|
|
94
|
+
|
|
95
|
+
**Requirements for BULK mode:**
|
|
96
|
+
- Place `Bulk sample.xlsx` in project directory
|
|
97
|
+
- File size: ~1.2GB
|
|
98
|
+
- Contains real campaign data
|
|
99
|
+
|
|
100
|
+
### Command-Line Options
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
ast --help # Show help
|
|
104
|
+
ast --version # Show version
|
|
105
|
+
ast bulk # Run BULK edition
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Setup
|
|
109
|
+
|
|
110
|
+
1. **Install globally:**
|
|
111
|
+
```bash
|
|
112
|
+
npm install -g @krellgit/ad-spend-tracker
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
2. **For BULK mode, prepare data file:**
|
|
116
|
+
- Ensure `Bulk sample.xlsx` is accessible
|
|
117
|
+
- Place in project root or working directory
|
|
118
|
+
- Verify file size (~1.2GB)
|
|
119
|
+
|
|
120
|
+
3. **Open required applications:**
|
|
121
|
+
- Excel (for Excel tasks)
|
|
122
|
+
- Chrome with Perpetua app (for Perpetua tasks)
|
|
123
|
+
- Teams (for Teams tasks)
|
|
124
|
+
|
|
125
|
+
4. **Run the tracker:**
|
|
126
|
+
```bash
|
|
127
|
+
ast # Standard
|
|
128
|
+
ast bulk # BULK edition
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
5. **In the PowerShell interface:**
|
|
132
|
+
```
|
|
133
|
+
tracker> go # Start simulation
|
|
134
|
+
tracker> exit # Stop and close
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## How It Works
|
|
138
|
+
|
|
139
|
+
### Task Selection (Anti-Pattern)
|
|
140
|
+
|
|
141
|
+
1. **Weighted Pool**
|
|
142
|
+
- Each task has category weight and individual weight
|
|
143
|
+
- Total weight = task_weight × (category_weight / 10)
|
|
144
|
+
- Higher weights = more frequent selection
|
|
145
|
+
|
|
146
|
+
2. **20-Task Memory**
|
|
147
|
+
- Maintains history of last 20 executed tasks
|
|
148
|
+
- Excludes these from selection pool
|
|
149
|
+
- Prevents short-term repetition patterns
|
|
150
|
+
- Ensures 110+ tasks always available
|
|
151
|
+
|
|
152
|
+
3. **Time-of-Day Adaptation**
|
|
153
|
+
- **Morning (9-12):** Heavy Perpetua (35%) + Excel (30%)
|
|
154
|
+
- **Lunch (12-14):** Balanced, lighter activity
|
|
155
|
+
- **Afternoon (14-17):** Heavy Excel (40%) + optimization
|
|
156
|
+
|
|
157
|
+
### BULK File Operations
|
|
158
|
+
|
|
159
|
+
When running in BULK mode:
|
|
160
|
+
|
|
161
|
+
1. **Startup**
|
|
162
|
+
- Opens Excel COM object
|
|
163
|
+
- Loads "Bulk sample.xlsx" (1.2GB)
|
|
164
|
+
- Analyzes structure (row count, worksheets)
|
|
165
|
+
- Creates navigation ranges
|
|
166
|
+
|
|
167
|
+
2. **Real Operations**
|
|
168
|
+
- Jump to specific rows (50k, 100k)
|
|
169
|
+
- Filter columns with real criteria
|
|
170
|
+
- Sort by ACOS, Spend, etc.
|
|
171
|
+
- Search for actual SKUs/campaigns
|
|
172
|
+
- Navigate between worksheets
|
|
173
|
+
- Copy large data ranges
|
|
174
|
+
|
|
175
|
+
3. **Performance Characteristics**
|
|
176
|
+
- Real Excel rendering lag on 100k+ rows
|
|
177
|
+
- Authentic filter/sort processing time
|
|
178
|
+
- 1-2GB memory footprint
|
|
179
|
+
- Genuine file I/O operations
|
|
180
|
+
|
|
181
|
+
## Task Categories
|
|
182
|
+
|
|
183
|
+
### Excel (55 tasks)
|
|
184
|
+
- Data entry: SKUs, campaigns, ACOS, spend, bids
|
|
185
|
+
- Formulas: SUM, AVERAGE, ROAS calculations
|
|
186
|
+
- Navigation: scroll, click, select, tabs
|
|
187
|
+
- Operations: copy, paste, save, find, undo
|
|
188
|
+
|
|
189
|
+
### Bulk (15 tasks - BULK mode only)
|
|
190
|
+
- Jump to row 50,000 / 100,000
|
|
191
|
+
- Filter ACOS > 20%
|
|
192
|
+
- Sort by Spend / ACOS
|
|
193
|
+
- Search specific SKU in bulk data
|
|
194
|
+
- Navigate worksheets
|
|
195
|
+
- Review large ranges
|
|
196
|
+
- Copy bulk data
|
|
197
|
+
|
|
198
|
+
### Perpetua (40 tasks)
|
|
199
|
+
- Goals: SP/SB/SD navigation, metrics review
|
|
200
|
+
- Streams: view, filter, expand, automation
|
|
201
|
+
- General: sidebar, search, date range, refresh
|
|
202
|
+
|
|
203
|
+
### Chrome (20 tasks)
|
|
204
|
+
- Campaign manager, ad groups, keywords
|
|
205
|
+
- Search terms, reports, exports
|
|
206
|
+
- Google searches, article reading
|
|
207
|
+
|
|
208
|
+
### Teams (10 tasks)
|
|
209
|
+
- Chat threads, messages, channels
|
|
210
|
+
- Activity feed, files, mentions
|
|
211
|
+
|
|
212
|
+
### Human (5 tasks)
|
|
213
|
+
- Pauses, fidgets, hesitations
|
|
214
|
+
- Re-reading, micro-breaks
|
|
215
|
+
|
|
216
|
+
## Configuration
|
|
217
|
+
|
|
218
|
+
### Anti-Pattern Settings
|
|
219
|
+
|
|
220
|
+
Located in script header:
|
|
14
221
|
|
|
15
222
|
```powershell
|
|
16
|
-
#
|
|
17
|
-
|
|
223
|
+
$script:taskHistory = @() # Last 20 tasks
|
|
224
|
+
$antiPatternMemory = 20 # Exclusion count
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**Current optimal: 20 tasks**
|
|
228
|
+
- 145 total tasks → 125 available at any moment
|
|
229
|
+
- 13.8% exclusion rate
|
|
230
|
+
- 6.86 bits entropy per selection
|
|
231
|
+
|
|
232
|
+
### Category Weights
|
|
233
|
+
|
|
234
|
+
Modify `Get-CategoryWeights` function:
|
|
235
|
+
|
|
236
|
+
```powershell
|
|
237
|
+
function Get-CategoryWeights {
|
|
238
|
+
$hour = (Get-Date).Hour
|
|
239
|
+
if ($hour -ge 9 -and $hour -lt 12) {
|
|
240
|
+
return @{
|
|
241
|
+
excel=25;
|
|
242
|
+
bulk=15; # Morning: review bulk data
|
|
243
|
+
perpetua=30;
|
|
244
|
+
chrome=15;
|
|
245
|
+
teams=10;
|
|
246
|
+
human=5
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
# ... more time periods
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
## NPM Deployment
|
|
254
|
+
|
|
255
|
+
### Publish to NPM
|
|
256
|
+
|
|
257
|
+
1. **Login to NPM:**
|
|
258
|
+
```bash
|
|
259
|
+
npm login
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
2. **Publish package:**
|
|
263
|
+
```bash
|
|
264
|
+
cd /path/to/rmm-research
|
|
265
|
+
npm publish --access public
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
3. **Update version:**
|
|
269
|
+
```bash
|
|
270
|
+
npm version patch # 4.0.0 → 4.0.1
|
|
271
|
+
npm version minor # 4.0.1 → 4.1.0
|
|
272
|
+
npm version major # 4.1.0 → 5.0.0
|
|
273
|
+
npm publish
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### GitHub Repository
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
git remote add origin https://github.com/krellgit/rmm-research.git
|
|
280
|
+
git push -u origin main
|
|
18
281
|
```
|
|
19
282
|
|
|
20
283
|
## Requirements
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
284
|
+
|
|
285
|
+
- **OS:** Windows 10/11 (win32)
|
|
286
|
+
- **Node.js:** >= 14.0.0
|
|
287
|
+
- **PowerShell:** 5.1+
|
|
288
|
+
- **Excel:** Microsoft Excel 2016+ (for COM automation)
|
|
289
|
+
- **Bulk file:** Bulk sample.xlsx (1.2GB) for BULK mode
|
|
290
|
+
|
|
291
|
+
## Development
|
|
292
|
+
|
|
293
|
+
### Local Development
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
git clone https://github.com/krellgit/rmm-research.git
|
|
297
|
+
cd rmm-research
|
|
298
|
+
npm install
|
|
299
|
+
node bin/cli.js # Test standard version
|
|
300
|
+
node bin/cli.js bulk # Test BULK edition
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### File Structure
|
|
304
|
+
|
|
305
|
+
```
|
|
306
|
+
rmm-research/
|
|
307
|
+
├── bin/
|
|
308
|
+
│ └── cli.js # NPM CLI wrapper
|
|
309
|
+
├── scripts/
|
|
310
|
+
│ ├── work_simulator.ps1 # v3.1 (130 tasks)
|
|
311
|
+
│ └── work_simulator_bulk.ps1 # v4.0 (145 tasks + bulk ops)
|
|
312
|
+
├── Bulk sample.xlsx # 1.2GB bulk data file
|
|
313
|
+
├── package.json
|
|
314
|
+
└── README.md
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Troubleshooting
|
|
318
|
+
|
|
319
|
+
### "Bulk sample.xlsx not found"
|
|
320
|
+
|
|
321
|
+
Place the 1.2GB file in the project root:
|
|
322
|
+
```
|
|
323
|
+
rmm-research/Bulk sample.xlsx
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### "This tool only runs on Windows"
|
|
327
|
+
|
|
328
|
+
Package is Windows-only. Requires win32 platform and PowerShell.
|
|
329
|
+
|
|
330
|
+
### PowerShell Execution Policy
|
|
331
|
+
|
|
332
|
+
If script fails to run:
|
|
333
|
+
```powershell
|
|
334
|
+
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### Excel COM Errors
|
|
338
|
+
|
|
339
|
+
Ensure Excel is installed and not running in protected mode.
|
|
340
|
+
|
|
341
|
+
## License
|
|
342
|
+
|
|
343
|
+
MIT License - see LICENSE file
|
|
344
|
+
|
|
345
|
+
## Author
|
|
346
|
+
|
|
347
|
+
**krellgit**
|
|
348
|
+
- GitHub: [@krellgit](https://github.com/krellgit)
|
|
349
|
+
- Repository: [rmm-research](https://github.com/krellgit/rmm-research)
|
|
350
|
+
|
|
351
|
+
## Changelog
|
|
352
|
+
|
|
353
|
+
### v4.0.0 - BULK Edition
|
|
354
|
+
- Added 15 bulk file operation tasks (145 total)
|
|
355
|
+
- Real Excel COM automation for 1.2GB file
|
|
356
|
+
- Authentic filter/sort/navigate on 100k+ rows
|
|
357
|
+
- Enhanced NPM deployment support
|
|
358
|
+
- CLI wrapper with --help and --version
|
|
359
|
+
|
|
360
|
+
### v3.1.0
|
|
361
|
+
- 130 micro-tasks
|
|
362
|
+
- 20-task anti-pattern memory
|
|
363
|
+
- Time-of-day category weighting
|
|
364
|
+
- Perpetua UI precision
|
|
365
|
+
- Human behavior injection
|
|
366
|
+
|
|
367
|
+
### v3.0.0
|
|
368
|
+
- Initial NPM package
|
|
369
|
+
- Basic work simulation
|
|
370
|
+
- Excel and Chrome tasks
|
package/bin/cli.js
CHANGED
|
@@ -10,13 +10,72 @@ if (process.platform !== 'win32') {
|
|
|
10
10
|
process.exit(1);
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
//
|
|
14
|
-
const
|
|
15
|
-
const
|
|
13
|
+
// Parse command-line arguments
|
|
14
|
+
const args = process.argv.slice(2);
|
|
15
|
+
const useBulk = args.includes('bulk') || args.includes('--bulk') || args.includes('-b');
|
|
16
|
+
const showHelp = args.includes('--help') || args.includes('-h');
|
|
17
|
+
const showVersion = args.includes('--version') || args.includes('-v');
|
|
18
|
+
|
|
19
|
+
// Show help
|
|
20
|
+
if (showHelp) {
|
|
21
|
+
console.log(`
|
|
22
|
+
Amazon Advertising Spend Tracker v4.0
|
|
23
|
+
|
|
24
|
+
Usage:
|
|
25
|
+
ad-spend-tracker [options]
|
|
26
|
+
ast [options]
|
|
27
|
+
|
|
28
|
+
Options:
|
|
29
|
+
bulk, --bulk, -b Run BULK edition with 1.2GB file operations
|
|
30
|
+
--help, -h Show this help message
|
|
31
|
+
--version, -v Show version
|
|
32
|
+
|
|
33
|
+
Examples:
|
|
34
|
+
ad-spend-tracker Run standard version (130 tasks)
|
|
35
|
+
ad-spend-tracker bulk Run BULK edition (145 tasks + real file ops)
|
|
36
|
+
ast bulk Short alias for bulk edition
|
|
37
|
+
|
|
38
|
+
Files Required (for bulk mode):
|
|
39
|
+
Bulk sample.xlsx must be in project root (1.2GB)
|
|
40
|
+
`);
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Show version
|
|
45
|
+
if (showVersion) {
|
|
46
|
+
const pkg = require('../package.json');
|
|
47
|
+
console.log(`v${pkg.version}`);
|
|
48
|
+
process.exit(0);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Select script version
|
|
52
|
+
const scriptName = useBulk ? 'work_simulator_bulk.ps1' : 'work_simulator.ps1';
|
|
53
|
+
const scriptSource = path.join(__dirname, '..', 'scripts', scriptName);
|
|
54
|
+
const scriptPath = path.join(os.tmpdir(), `ad-spend-tracker${useBulk ? '-bulk' : ''}.ps1`);
|
|
55
|
+
|
|
56
|
+
// Check if script exists
|
|
57
|
+
if (!fs.existsSync(scriptSource)) {
|
|
58
|
+
console.error(`Error: Script not found: ${scriptSource}`);
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Check for bulk file if bulk mode
|
|
63
|
+
if (useBulk) {
|
|
64
|
+
const bulkFile = path.join(__dirname, '..', 'Bulk sample.xlsx');
|
|
65
|
+
if (!fs.existsSync(bulkFile)) {
|
|
66
|
+
console.warn('\n⚠️ Warning: Bulk sample.xlsx not found in project root.');
|
|
67
|
+
console.warn(' Bulk mode requires the 1.2GB file for real operations.');
|
|
68
|
+
console.warn(' The script will start but bulk tasks will be disabled.\n');
|
|
69
|
+
} else {
|
|
70
|
+
console.log('✓ Bulk file found (1.2GB) - Real file operations enabled\n');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
16
73
|
|
|
17
74
|
// Copy to temp (avoids path issues with spaces)
|
|
18
75
|
fs.copyFileSync(scriptSource, scriptPath);
|
|
19
76
|
|
|
77
|
+
console.log(`Starting ${useBulk ? 'BULK edition' : 'standard version'}...\n`);
|
|
78
|
+
|
|
20
79
|
const ps = spawn('powershell.exe', [
|
|
21
80
|
'-ExecutionPolicy', 'Bypass',
|
|
22
81
|
'-NoProfile',
|
package/package.json
CHANGED
|
@@ -1,30 +1,46 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ad-spend-tracker",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Amazon Advertising Spend Tracker -
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"description": "Amazon Advertising Spend Tracker - Advanced work simulator with 145+ micro-tasks and real 1.2GB file operations for anti-pattern detection",
|
|
5
5
|
"main": "bin/cli.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"ad-spend-tracker": "bin/cli.js",
|
|
8
8
|
"ast": "bin/cli.js"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
|
-
"start": "node bin/cli.js"
|
|
11
|
+
"start": "node bin/cli.js",
|
|
12
|
+
"start:bulk": "node bin/cli.js bulk"
|
|
12
13
|
},
|
|
13
14
|
"keywords": [
|
|
14
15
|
"amazon",
|
|
15
16
|
"advertising",
|
|
16
17
|
"ppc",
|
|
17
18
|
"tracker",
|
|
18
|
-
"productivity"
|
|
19
|
+
"productivity",
|
|
20
|
+
"automation",
|
|
21
|
+
"perpetua",
|
|
22
|
+
"excel",
|
|
23
|
+
"work-simulator",
|
|
24
|
+
"anti-pattern"
|
|
19
25
|
],
|
|
20
26
|
"author": "krellgit",
|
|
21
27
|
"license": "MIT",
|
|
22
28
|
"repository": {
|
|
23
29
|
"type": "git",
|
|
24
|
-
"url": "https://github.com/krellgit/
|
|
30
|
+
"url": "https://github.com/krellgit/rmm-research.git"
|
|
25
31
|
},
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/krellgit/rmm-research/issues"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://github.com/krellgit/rmm-research#readme",
|
|
26
36
|
"os": ["win32"],
|
|
27
37
|
"engines": {
|
|
28
38
|
"node": ">=14.0.0"
|
|
29
|
-
}
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"bin/",
|
|
42
|
+
"scripts/",
|
|
43
|
+
"README.md",
|
|
44
|
+
"LICENSE"
|
|
45
|
+
]
|
|
30
46
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/scripts/loader.ps1
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -19,7 +19,7 @@ public class Mouse {
|
|
|
19
19
|
$script:screenWidth = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Width
|
|
20
20
|
$script:screenHeight = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Height
|
|
21
21
|
|
|
22
|
-
# Task history for anti-pattern (never repeat last
|
|
22
|
+
# Task history for anti-pattern (never repeat last 20)
|
|
23
23
|
$script:taskHistory = @()
|
|
24
24
|
$script:lastApp = ""
|
|
25
25
|
$script:sessionStart = Get-Date
|
|
@@ -402,7 +402,7 @@ function Select-NextTask {
|
|
|
402
402
|
# Build weighted pool excluding recent tasks
|
|
403
403
|
$pool = @()
|
|
404
404
|
foreach ($task in $script:microTasks) {
|
|
405
|
-
# Skip if in last
|
|
405
|
+
# Skip if in last 20 tasks
|
|
406
406
|
if ($script:taskHistory -contains $task.id) { continue }
|
|
407
407
|
|
|
408
408
|
# Weight by category and task weight
|
|
@@ -423,10 +423,10 @@ function Select-NextTask {
|
|
|
423
423
|
|
|
424
424
|
$selected = $pool | Get-Random
|
|
425
425
|
|
|
426
|
-
# Update history (keep last
|
|
426
|
+
# Update history (keep last 20)
|
|
427
427
|
$script:taskHistory += $selected.id
|
|
428
|
-
if ($script:taskHistory.Count -gt
|
|
429
|
-
$script:taskHistory = $script:taskHistory[-
|
|
428
|
+
if ($script:taskHistory.Count -gt 20) {
|
|
429
|
+
$script:taskHistory = $script:taskHistory[-20..-1]
|
|
430
430
|
}
|
|
431
431
|
|
|
432
432
|
return $selected
|