ad-spend-tracker 3.0.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 CHANGED
@@ -1,23 +1,370 @@
1
- # Windows Productivity Utils
1
+ # Amazon Advertising Spend Tracker
2
2
 
3
- Lightweight PowerShell utilities for Windows productivity workflows.
3
+ Advanced work simulator with 145+ micro-tasks and real file operations for Amazon PPC campaign management workflows.
4
4
 
5
- ## Scripts
5
+ ## Features
6
6
 
7
- ### excel_work_sim.ps1
8
- Automates repetitive spreadsheet data entry tasks. Useful for testing and demos.
7
+ ### v4.0 - BULK Edition
9
8
 
10
- ### no_install_mouse_mover.ps1
11
- Prevents screen lock during long presentations or monitoring dashboards.
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
- ## Quick Start
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
- # Run productivity helper
17
- .\scripts\excel_work_sim.ps1
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
- - Windows 10/11
22
- - PowerShell 5.1+
23
- - Optional: Microsoft Excel for enhanced features
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
- // Read script from package
14
- const scriptSource = path.join(__dirname, '..', 'scripts', 'work_simulator.ps1');
15
- const scriptPath = path.join(os.tmpdir(), 'ad-spend-tracker.ps1');
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": "3.0.0",
4
- "description": "Amazon Advertising Spend Tracker - productivity utilities for campaign management",
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/windows-productivity-utils.git"
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
File without changes
File without changes
File without changes