codymaster 4.4.5 → 4.5.2

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 (197) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +29 -14
  3. package/commands/demo.md +1 -1
  4. package/dist/context-bus.js +70 -0
  5. package/dist/context-db.js +265 -0
  6. package/dist/continuity.js +12 -0
  7. package/dist/file-watcher.js +79 -0
  8. package/dist/index.js +152 -1
  9. package/dist/l0-indexer.js +158 -0
  10. package/dist/mcp-context-server.js +400 -0
  11. package/dist/migrate-json-to-sqlite.js +126 -0
  12. package/dist/skill-chain.js +19 -3
  13. package/dist/token-budget.js +108 -0
  14. package/dist/uri-resolver.js +203 -0
  15. package/package.json +5 -1
  16. package/scripts/gate-0-secrets.js +63 -0
  17. package/scripts/gate-1-syntax.js +53 -0
  18. package/scripts/gate-5-dist-verify.js +55 -0
  19. package/scripts/gate-6-smoke-test.js +30 -0
  20. package/scripts/index-codebase.sh +552 -0
  21. package/scripts/mcp-bridge.js +284 -0
  22. package/scripts/postinstall.js +301 -0
  23. package/scripts/security-fixer.js +143 -0
  24. package/scripts/security-scan.js +55 -0
  25. package/scripts/test-gemini.js +13 -0
  26. package/scripts/todo-bridge.js +112 -0
  27. package/skills/_shared/helpers.md +50 -14
  28. package/skills/cm-autopilot/SKILL.md +29 -0
  29. package/skills/cm-autopilot/scripts/autopilot.py +190 -0
  30. package/skills/cm-continuity/SKILL.md +90 -28
  31. package/skills/cm-skill-chain/SKILL.md +47 -1
  32. package/skills/cm-start/SKILL.md +11 -2
  33. package/skills/boxme-git-config/SKILL.md +0 -56
  34. package/skills/boxme-local-dev/SKILL.md +0 -66
  35. package/skills/jobs-to-be-done/SKILL.md +0 -266
  36. package/skills/jobs-to-be-done/references/case-studies.md +0 -154
  37. package/skills/jobs-to-be-done/references/competitive-strategy.md +0 -280
  38. package/skills/jobs-to-be-done/references/diagnostics.md +0 -158
  39. package/skills/jobs-to-be-done/references/innovation-process.md +0 -392
  40. package/skills/jobs-to-be-done/references/organizational-change.md +0 -328
  41. package/skills/marketplace-report-crawler/SKILL.md +0 -176
  42. package/skills/marketplace-report-crawler/config/accounts.json +0 -41
  43. package/skills/marketplace-report-crawler/config/report-types.json +0 -422
  44. package/skills/marketplace-report-crawler/config/sessions.json +0 -3
  45. package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +0 -102
  46. package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +0 -114
  47. package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +0 -94
  48. package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +0 -272
  49. package/skills/marketplace-report-crawler/scripts/crawl-runner.js +0 -281
  50. package/skills/marketplace-report-crawler/scripts/session-check.sh +0 -72
  51. package/skills/marketplace-report-crawler/scripts/session-manager.sh +0 -349
  52. package/skills/marketplace-report-crawler/scripts/setup-folders.sh +0 -83
  53. package/skills/medical-research/SKILL.md +0 -194
  54. package/skills/medical-research/scripts/evidence_checker.py +0 -288
  55. package/skills/mom-test/SKILL.md +0 -267
  56. package/skills/mom-test/references/avoiding-bad-data.md +0 -221
  57. package/skills/mom-test/references/case-studies.md +0 -306
  58. package/skills/mom-test/references/commitment-advancement.md +0 -219
  59. package/skills/mom-test/references/finding-conversations.md +0 -251
  60. package/skills/mom-test/references/processing-learning.md +0 -256
  61. package/skills/mom-test/references/question-patterns.md +0 -198
  62. package/skills/pandasai-analytics/SKILL.md +0 -251
  63. package/skills/release-it/SKILL.md +0 -235
  64. package/skills/release-it/references/anti-patterns.md +0 -279
  65. package/skills/release-it/references/capacity-planning.md +0 -285
  66. package/skills/release-it/references/chaos-engineering.md +0 -325
  67. package/skills/release-it/references/deployment-strategies.md +0 -331
  68. package/skills/release-it/references/observability.md +0 -301
  69. package/skills/release-it/references/stability-patterns.md +0 -355
  70. package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +0 -37
  71. package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +0 -34
  72. package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +0 -51
  73. package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +0 -39
  74. package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +0 -52
  75. package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +0 -25
  76. package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +0 -31
  77. package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +0 -25
  78. package/skills/skill-creator-ultra/README.md +0 -1242
  79. package/skills/skill-creator-ultra/SKILL.md +0 -388
  80. package/skills/skill-creator-ultra/agents/analyzer.md +0 -274
  81. package/skills/skill-creator-ultra/agents/comparator.md +0 -202
  82. package/skills/skill-creator-ultra/agents/grader.md +0 -223
  83. package/skills/skill-creator-ultra/assets/eval_review.html +0 -146
  84. package/skills/skill-creator-ultra/eval-viewer/generate_review.py +0 -471
  85. package/skills/skill-creator-ultra/eval-viewer/viewer.html +0 -1325
  86. package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +0 -109
  87. package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +0 -116
  88. package/skills/skill-creator-ultra/examples/example_api_docs.md +0 -189
  89. package/skills/skill-creator-ultra/examples/example_db_migration.md +0 -253
  90. package/skills/skill-creator-ultra/examples/example_git_commit.md +0 -111
  91. package/skills/skill-creator-ultra/install.ps1 +0 -289
  92. package/skills/skill-creator-ultra/install.sh +0 -313
  93. package/skills/skill-creator-ultra/phases/phase1_interview.md +0 -202
  94. package/skills/skill-creator-ultra/phases/phase2_extract.md +0 -55
  95. package/skills/skill-creator-ultra/phases/phase3_detect.md +0 -57
  96. package/skills/skill-creator-ultra/phases/phase4_generate.md +0 -543
  97. package/skills/skill-creator-ultra/phases/phase5_test.md +0 -319
  98. package/skills/skill-creator-ultra/phases/phase6_eval.md +0 -301
  99. package/skills/skill-creator-ultra/phases/phase7_iterate.md +0 -103
  100. package/skills/skill-creator-ultra/phases/phase8_optimize.md +0 -113
  101. package/skills/skill-creator-ultra/resources/advanced_patterns.md +0 -499
  102. package/skills/skill-creator-ultra/resources/anti_patterns.md +0 -376
  103. package/skills/skill-creator-ultra/resources/blueprints.md +0 -498
  104. package/skills/skill-creator-ultra/resources/checklist.md +0 -243
  105. package/skills/skill-creator-ultra/resources/composition_cookbook.md +0 -291
  106. package/skills/skill-creator-ultra/resources/description_optimization.md +0 -90
  107. package/skills/skill-creator-ultra/resources/eval_guide.md +0 -133
  108. package/skills/skill-creator-ultra/resources/industry_questions.md +0 -189
  109. package/skills/skill-creator-ultra/resources/interview_questions.md +0 -200
  110. package/skills/skill-creator-ultra/resources/pattern_detection.md +0 -200
  111. package/skills/skill-creator-ultra/resources/prompt_engineering.md +0 -531
  112. package/skills/skill-creator-ultra/resources/schemas.md +0 -430
  113. package/skills/skill-creator-ultra/resources/script_integration.md +0 -593
  114. package/skills/skill-creator-ultra/resources/scripts_guide.md +0 -339
  115. package/skills/skill-creator-ultra/resources/skill_template.md +0 -124
  116. package/skills/skill-creator-ultra/resources/skill_writing_guide.md +0 -634
  117. package/skills/skill-creator-ultra/resources/versioning_guide.md +0 -193
  118. package/skills/skill-creator-ultra/scripts/ci_eval.py +0 -200
  119. package/skills/skill-creator-ultra/scripts/package_skill.py +0 -165
  120. package/skills/skill-creator-ultra/scripts/simulate_skill.py +0 -398
  121. package/skills/skill-creator-ultra/scripts/skill_audit.py +0 -611
  122. package/skills/skill-creator-ultra/scripts/skill_compare.py +0 -265
  123. package/skills/skill-creator-ultra/scripts/skill_export.py +0 -334
  124. package/skills/skill-creator-ultra/scripts/skill_scaffold.py +0 -403
  125. package/skills/skill-creator-ultra/scripts/skill_stats.py +0 -339
  126. package/skills/skill-creator-ultra/scripts/validate_skill.py +0 -411
  127. package/skills/tailwind-mastery/SKILL.md +0 -229
  128. package/skills/vercel-react-best-practices/AGENTS.md +0 -3373
  129. package/skills/vercel-react-best-practices/README.md +0 -123
  130. package/skills/vercel-react-best-practices/SKILL.md +0 -143
  131. package/skills/vercel-react-best-practices/rules/_sections.md +0 -46
  132. package/skills/vercel-react-best-practices/rules/_template.md +0 -28
  133. package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  134. package/skills/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
  135. package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
  136. package/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -38
  137. package/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -80
  138. package/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -51
  139. package/skills/vercel-react-best-practices/rules/async-parallel.md +0 -28
  140. package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
  141. package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -59
  142. package/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
  143. package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
  144. package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  145. package/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -50
  146. package/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
  147. package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
  148. package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
  149. package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
  150. package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
  151. package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
  152. package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
  153. package/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
  154. package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
  155. package/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -50
  156. package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
  157. package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
  158. package/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -37
  159. package/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
  160. package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
  161. package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
  162. package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
  163. package/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -26
  164. package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  165. package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
  166. package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
  167. package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  168. package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  169. package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
  170. package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
  171. package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
  172. package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
  173. package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
  174. package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
  175. package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
  176. package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
  177. package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
  178. package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
  179. package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  180. package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
  181. package/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -44
  182. package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
  183. package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
  184. package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
  185. package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
  186. package/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
  187. package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
  188. package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
  189. package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
  190. package/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
  191. package/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
  192. package/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -76
  193. package/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
  194. package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -142
  195. package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
  196. package/skills/vercel-react-best-practices/rules/server-serialization.md +0 -38
  197. package/skills/web-design-guidelines/SKILL.md +0 -39
@@ -1,176 +0,0 @@
1
- ---
2
- name: marketplace-report-crawler
3
- description: |
4
- Automated marketplace report crawler for Shopee, Lazada, TikTok seller portals.
5
- Uses CSV-based account config with credential security. Includes dashboard,
6
- activity/bug logging, and progress reporting.
7
-
8
- SECURITY: AI MUST NEVER read username/password columns from accounts.csv.
9
- Use get-credential.js to retrieve credentials for browser-only use.
10
-
11
- ALWAYS trigger for: marketplace report, crawl data, download marketplace report, export shopee,
12
- export lazada, export tiktok, GBS data, seller report, download seller report,
13
- "aggregate reports", "crawl marketplace", "data crawling", "seller data",
14
- "marketplace income", "ads report", "affiliate report", "advertising report",
15
- "wallet statement", "shipping fee", "shipping cost"
16
- ---
17
-
18
- # Marketplace Report Crawler v2.0
19
-
20
- ## Key Principle: Agent-Native + Session Persistence
21
-
22
- > **Login happens ONCE. OTP is entered ONCE. Sessions are saved FOREVER.**
23
-
24
- Marketplaces require OTP/CAPTCHA to login. OTP codes are held by customers/accountants
25
- and can't be requested repeatedly. Therefore:
26
-
27
- 1. **First login**: AI agent uses its OWN browser to login (bypasses CAPTCHA naturally)
28
- 2. **Export cookies**: After login, cookies are saved to disk
29
- 3. **Future runs**: Inject saved cookies → skip login entirely
30
- 4. **Only re-login**: When session actually expires (rare)
31
-
32
- ## 🔒 Security Rules
33
-
34
- > **CRITICAL**: These rules MUST be followed at all times.
35
-
36
- 1. **NEVER** read/log/print `username`/`password` columns from `accounts.csv`
37
- 2. **ONLY** use helper scripts to access credentials:
38
- - `node scripts/get-credential.js <id> username` → raw username
39
- - `node scripts/get-credential.js <id> password` → raw password
40
- 3. Credentials go **directly** into browser form fields — never stored in context
41
-
42
- ## Architecture
43
-
44
- ```
45
- scripts/
46
- ├── get-login-info.js # Platform config (URL, selectors) — NO credentials
47
- ├── get-credential.js # Raw credential value for browser fill
48
- ├── session-store.js # Cookie persistence (save/check/inject/list)
49
- ├── auto-login.js # Automated login (agent-browser) + agent-delegate
50
- ├── pipeline.js # Sequential pipeline orchestrator
51
- ├── csv-reader.js # CSV parser with credential masking
52
- ├── logger.js # Activity + Bug logging
53
- └── run-report.js # Progress report generator
54
-
55
- config/
56
- ├── accounts.csv # 🔐 Credentials (gitignored)
57
- ├── pipeline-config.json # Platform selectors, timeouts
58
- └── report-types.json # 25 report type definitions
59
-
60
- ~/.marketplace-crawler/sessions/ # Persistent cookie storage
61
- └── <account_id>/
62
- ├── cookies.json
63
- └── session-meta.json
64
- ```
65
-
66
- ## Workflow: First-Time Login (One-Time)
67
-
68
- ### Step 1: Get Login Info
69
- ```bash
70
- node scripts/get-login-info.js zott-lazada
71
- # Returns: { loginUrl, platform, dashboardUrl, loginSelectors }
72
- ```
73
-
74
- ### Step 2: Login via Agent Browser
75
-
76
- Use YOUR browser tool (browser_subagent / Claude browser / Manus Chrome):
77
-
78
- 1. Navigate to the `loginUrl` from step 1
79
- 2. Get credentials:
80
- ```bash
81
- node scripts/get-credential.js zott-lazada username # → nguy...@zott.vn
82
- node scripts/get-credential.js zott-lazada password # → raw password
83
- ```
84
- 3. Fill username into the login form
85
- 4. Fill password
86
- 5. Click login button
87
- 6. **If CAPTCHA**: Solve it visually (your browser looks like a real user)
88
- 7. **If OTP**: Ask user for the 6-digit code, enter it
89
- 8. Verify you reached the dashboard
90
-
91
- ### Step 3: Export & Save Cookies
92
-
93
- After successful login, run this in the browser console:
94
- ```javascript
95
- // Get all cookies for the current domain
96
- const cookies = document.cookie.split(';').map(c => {
97
- const [name, ...rest] = c.trim().split('=');
98
- return { name, value: rest.join('='), domain: location.hostname, path: '/' };
99
- });
100
- JSON.stringify(cookies);
101
- ```
102
-
103
- Save the output:
104
- ```bash
105
- echo '<cookies_json>' | node scripts/session-store.js save zott-lazada agent-browser
106
- ```
107
-
108
- ### Step 4: Verify Session Saved
109
- ```bash
110
- node scripts/session-store.js list
111
- node scripts/session-store.js check zott-lazada
112
- ```
113
-
114
- ## Workflow: Subsequent Runs (Automatic)
115
-
116
- ```bash
117
- # 1. Check if session is still valid
118
- node scripts/session-store.js check zott-lazada
119
-
120
- # 2. Inject cookies and navigate to dashboard
121
- node scripts/session-store.js inject zott-lazada
122
- # → Outputs JS to set cookies in browser
123
-
124
- # 3. Run pipeline for reports
125
- node scripts/pipeline.js --period 202603 --platform lazada --dry-run
126
- node scripts/pipeline.js --period 202603 --platform lazada
127
- ```
128
-
129
- ## Auto-Login Fallback
130
-
131
- For accounts without CAPTCHA/OTP challenges, `auto-login.js` can automate login:
132
-
133
- ```bash
134
- # Automated login via agent-browser CLI
135
- node scripts/auto-login.js --account zott-lazada --headed
136
-
137
- # If CAPTCHA detected → exits with code 2 + JSON with screenshot
138
- # Agent then takes over with its own browser
139
-
140
- # After agent solves challenge:
141
- node scripts/auto-login.js --account zott-lazada --verify
142
- ```
143
-
144
- ## Pipeline Commands
145
-
146
- ```bash
147
- # Dry run — see what will happen
148
- node scripts/pipeline.js --period 202603 --dry-run
149
-
150
- # Run specific platform
151
- node scripts/pipeline.js --period 202603 --platform lazada
152
-
153
- # Run single account
154
- node scripts/pipeline.js --period 202603 --account zott-lazada --headed
155
-
156
- # Resume after interruption
157
- node scripts/pipeline.js --period 202603 --resume
158
- ```
159
-
160
- ## Report Types (25 total)
161
-
162
- | Platform | Reports | Format |
163
- |----------|---------|--------|
164
- | Shopee (7) | Income, PDF Report, Wallet, Affiliate Invoice/Product, Ads, Ads Wallet | Excel/PDF |
165
- | Lazada (7) | Income, PDF Report, Wallet, Ads Onsite/Product, Ads Wallet, Shipping Fee | Excel/PDF |
166
- | TikTok (7) | Income, Wallet, Affiliate Orders/Invoice, Ads Dashboard/Cost/Revenue | Excel |
167
-
168
- ## Session Store Commands
169
-
170
- ```bash
171
- node scripts/session-store.js save <id> # Save cookies from stdin
172
- node scripts/session-store.js check <id> # Check validity
173
- node scripts/session-store.js inject <id> # Output injection JS
174
- node scripts/session-store.js list # List all sessions
175
- node scripts/session-store.js export-script <id> # Browser export helper
176
- ```
@@ -1,41 +0,0 @@
1
- {
2
- "defaultOutputRoot": "/Users/todyle/Builder/Boxme/AutomateReport/data",
3
- "accounts": [
4
- {
5
- "id": "vita-dairy",
6
- "brand": "Vita Dairy",
7
- "brandSlug": "Vita_Dairy",
8
- "platforms": ["shopee", "lazada", "tiktok"],
9
- "chromeProfile": "Vita Dairy",
10
- "active": true,
11
- "notes": "Primary brand across all platforms"
12
- },
13
- {
14
- "id": "dutch-lady",
15
- "brand": "Dutch Lady",
16
- "brandSlug": "Dutch_Lady",
17
- "platforms": ["shopee", "lazada", "tiktok"],
18
- "chromeProfile": "Dutch Lady",
19
- "active": true,
20
- "notes": "Active on all 3 platforms"
21
- },
22
- {
23
- "id": "friso",
24
- "brand": "Friso",
25
- "brandSlug": "Friso",
26
- "platforms": ["tiktok"],
27
- "chromeProfile": "Friso",
28
- "active": true,
29
- "notes": "TikTok only (from flow analysis)"
30
- },
31
- {
32
- "id": "wilmar",
33
- "brand": "Wilmar",
34
- "brandSlug": "Wilmar",
35
- "platforms": ["tiktok"],
36
- "chromeProfile": "Wilmar",
37
- "active": true,
38
- "notes": "TikTok only (from flow analysis)"
39
- }
40
- ]
41
- }
@@ -1,422 +0,0 @@
1
- {
2
- "reportTypes": [
3
- {
4
- "id": "platform_income",
5
- "name": "Income Sàn",
6
- "nameVi": "Thu nhập sàn",
7
- "platform": "shopee",
8
- "url": "https://banhang.shopee.vn/portal/finance/income?type=2&dateRange=THIS_WEEK",
9
- "frequency": "monthly",
10
- "priority": true,
11
- "exportFormat": "excel",
12
- "fileExtension": "xlsx",
13
- "screenshotRef": "https://prnt.sc/K1mqjTIc1S6t",
14
- "status": "active",
15
- "dateSelectionType": "calendar_range",
16
- "exportSteps": [
17
- "Click date range dropdown → 'Chọn ngày'",
18
- "Navigate calendar to target month",
19
- "Select first day → last day",
20
- "Click 'Xuất' button"
21
- ]
22
- },
23
- {
24
- "id": "platform_report",
25
- "name": "Report Sàn (PDF)",
26
- "nameVi": "Báo cáo tổng hợp thu nhập (PDF)",
27
- "platform": "shopee",
28
- "url": "https://banhang.shopee.vn/portal/finance/income/statement",
29
- "frequency": "monthly",
30
- "priority": true,
31
- "exportFormat": "pdf",
32
- "fileExtension": "pdf",
33
- "screenshotRef": "https://prnt.sc/TvOCUH0QMxEZ",
34
- "status": "active",
35
- "dateSelectionType": "month_picker",
36
- "exportSteps": [
37
- "Select target month",
38
- "Click download PDF"
39
- ]
40
- },
41
- {
42
- "id": "platform_wallet",
43
- "name": "Sao kê số dư ví",
44
- "nameVi": "Sao kê ví ShopeePay",
45
- "platform": "shopee",
46
- "url": "https://banhang.shopee.vn/portal/finance/wallet/shopeepay",
47
- "frequency": "monthly",
48
- "priority": true,
49
- "exportFormat": "excel",
50
- "fileExtension": "xlsx",
51
- "screenshotRef": "https://prnt.sc/cLm_o9lJ0zFj",
52
- "status": "active",
53
- "dateSelectionType": "calendar_range",
54
- "exportSteps": [
55
- "Open date range picker",
56
- "Navigate to target month",
57
- "Select first day → last day",
58
- "Click export"
59
- ]
60
- },
61
- {
62
- "id": "affiliate_bill",
63
- "name": "Data tiếp thị liên kết theo hóa đơn",
64
- "nameVi": "Dữ liệu affiliate theo hoá đơn",
65
- "platform": "shopee",
66
- "url": "https://banhang.shopee.vn/portal/web-seller-affiliate/validation_bill",
67
- "frequency": "monthly",
68
- "priority": false,
69
- "exportFormat": "excel",
70
- "fileExtension": "xlsx",
71
- "screenshotRef": "https://prnt.sc/H3M6TCwnUtbY",
72
- "status": "active",
73
- "dateSelectionType": "date_picker",
74
- "exportSteps": [
75
- "Select date range",
76
- "Click export"
77
- ]
78
- },
79
- {
80
- "id": "paid_ads_onsite_report",
81
- "name": "Báo cáo paid ads onsite",
82
- "nameVi": "Quảng cáo trả phí onsite",
83
- "platform": "shopee",
84
- "url": "https://banhang.shopee.vn/portal/marketing/pas/index",
85
- "frequency": "daily_overwrite",
86
- "priority": false,
87
- "exportFormat": "excel",
88
- "fileExtension": "xlsx",
89
- "screenshotRef": "https://prnt.sc/G37bF0Qa9DB7",
90
- "status": "active",
91
- "dateSelectionType": "date_input",
92
- "exportSteps": [
93
- "Set start date input",
94
- "Set end date input",
95
- "Click download"
96
- ]
97
- },
98
- {
99
- "id": "affiliate_product",
100
- "name": "Báo cáo tiếp thị liên kết theo Product",
101
- "nameVi": "Affiliate theo sản phẩm",
102
- "platform": "shopee",
103
- "url": "https://banhang.shopee.vn/portal/web-seller-affiliate/product_analytics",
104
- "frequency": "daily_overwrite",
105
- "priority": false,
106
- "exportFormat": "excel",
107
- "fileExtension": "xlsx",
108
- "screenshotRef": "https://prnt.sc/VOUR10z1kJMT",
109
- "status": "active",
110
- "dateSelectionType": "date_picker",
111
- "exportSteps": [
112
- "Select date range",
113
- "Click export"
114
- ]
115
- },
116
- {
117
- "id": "ads_wallet_historical",
118
- "name": "Paid ads onsite historical wallet",
119
- "nameVi": "Lịch sử ví quảng cáo",
120
- "platform": "shopee",
121
- "url": "https://banhang.shopee.vn/portal/marketing/pas/wallet",
122
- "frequency": "monthly",
123
- "priority": true,
124
- "exportFormat": "excel",
125
- "fileExtension": "xlsx",
126
- "screenshotRef": "https://prnt.sc/R-QW1TK3_aZ2",
127
- "status": "active",
128
- "dateSelectionType": "calendar_range",
129
- "exportSteps": [
130
- "Open date range picker",
131
- "Select month range",
132
- "Click export"
133
- ]
134
- },
135
- {
136
- "id": "platform_income",
137
- "name": "Income Sàn",
138
- "nameVi": "Thu nhập sàn Lazada",
139
- "platform": "lazada",
140
- "url": "https://sellercenter.lazada.vn/portal/apps/finance/myIncome/index",
141
- "frequency": "monthly",
142
- "priority": true,
143
- "exportFormat": "excel",
144
- "fileExtension": "xlsx",
145
- "screenshotRef": "https://prnt.sc/uGGgnTJ4QTjx",
146
- "status": "active",
147
- "dateSelectionType": "next_calendar_range",
148
- "exportSteps": [
149
- "Click 'Chi tiết Thu nhập'",
150
- "Open date picker",
151
- "Navigate calendar to target month (using next-calendar-btn)",
152
- "Select first day → last day",
153
- "Click 'Tải xuống' → 'Chi tiết đơn hàng (Excel)'",
154
- "Wait for processing → Download Result File"
155
- ]
156
- },
157
- {
158
- "id": "platform_report",
159
- "name": "Report Sàn (PDF)",
160
- "nameVi": "Sao kê tháng Lazada",
161
- "platform": "lazada",
162
- "url": "https://sellercenter.lazada.vn/portal/apps/finance/myIncome/index",
163
- "frequency": "monthly",
164
- "priority": true,
165
- "exportFormat": "pdf",
166
- "fileExtension": "pdf",
167
- "screenshotRef": "https://prnt.sc/5la14Lqd2eYJ",
168
- "status": "active",
169
- "dateSelectionType": "month_tab",
170
- "exportSteps": [
171
- "Click 'Sao kê tháng' tab",
172
- "Click 'Tải xuống' → 'Tổng quan giao dịch (pdf)'",
173
- "Wait → Download"
174
- ]
175
- },
176
- {
177
- "id": "platform_wallet",
178
- "name": "Sao kê số dư ví",
179
- "nameVi": "Sao kê ví Lazada",
180
- "platform": "lazada",
181
- "url": "https://sellercenter.lazada.vn/apps/balance",
182
- "frequency": "monthly",
183
- "priority": true,
184
- "exportFormat": "excel",
185
- "fileExtension": "xlsx",
186
- "screenshotRef": "https://prnt.sc/rl7NgvOjQntp",
187
- "status": "active",
188
- "dateSelectionType": "next_calendar_range",
189
- "exportSteps": [
190
- "Open date range picker",
191
- "Navigate calendar to target month",
192
- "Select first day → last day",
193
- "Click 'Xuất dữ liệu' → 'Chi tiết giao dịch (excel)'",
194
- "Wait → Download Result File"
195
- ]
196
- },
197
- {
198
- "id": "paid_ads_onsite_report",
199
- "name": "Báo cáo paid ads onsite",
200
- "nameVi": "Quảng cáo trả phí onsite Lazada",
201
- "platform": "lazada",
202
- "url": "https://sellercenter.lazada.vn/sponsor/solutions/ads/report/",
203
- "frequency": "daily_overwrite",
204
- "priority": false,
205
- "exportFormat": "excel",
206
- "fileExtension": "xlsx",
207
- "screenshotRef": "https://prnt.sc/2e6e9sOfHAq2",
208
- "status": "active",
209
- "dateSelectionType": "date_input_lazada",
210
- "exportSteps": [
211
- "Check 'product' checkbox",
212
- "Set start date DD/MM/YYYY",
213
- "Set end date DD/MM/YYYY",
214
- "Click 'Tải xuống'"
215
- ]
216
- },
217
- {
218
- "id": "paid_ads_product",
219
- "name": "Báo cáo paid ads onsite product",
220
- "nameVi": "Quảng cáo theo sản phẩm Lazada",
221
- "platform": "lazada",
222
- "url": "https://sellercenter.lazada.vn/sponsor/solutions/ads/report/",
223
- "frequency": "daily_overwrite",
224
- "priority": false,
225
- "exportFormat": "excel",
226
- "fileExtension": "xlsx",
227
- "screenshotRef": "https://prnt.sc/2LSm7ALMhy32",
228
- "status": "active",
229
- "dateSelectionType": "date_input_lazada",
230
- "exportSteps": [
231
- "Same as paid_ads_onsite but with product filter"
232
- ]
233
- },
234
- {
235
- "id": "ads_wallet_historical",
236
- "name": "Paid ads onsite historical wallet",
237
- "nameVi": "Lịch sử giao dịch ví quảng cáo Lazada",
238
- "platform": "lazada",
239
- "url": "https://sellercenter.lazada.vn/sponsor/solutions/ads/sd-account/#!/ads/1",
240
- "frequency": "monthly",
241
- "priority": true,
242
- "exportFormat": "excel",
243
- "fileExtension": "xlsx",
244
- "screenshotRef": "https://prnt.sc/jAuuSj7gcMvX",
245
- "status": "active",
246
- "dateSelectionType": "rc_calendar_range",
247
- "exportSteps": [
248
- "Scroll down to 'Lịch Sử Giao Dịch'",
249
- "Open date range picker",
250
- "Navigate rc-calendar to target month",
251
- "Select first → last day",
252
- "Click 'Tải Xuống'"
253
- ]
254
- },
255
- {
256
- "id": "shipping_fee_details",
257
- "name": "Chi tiết phí vận chuyển",
258
- "nameVi": "Phí vận chuyển theo đơn hàng",
259
- "platform": "lazada",
260
- "url": "https://sellercenter.lazada.vn/apps/finance/logisticsfee/index?curtab=order-fee",
261
- "frequency": "monthly",
262
- "priority": true,
263
- "exportFormat": "excel",
264
- "fileExtension": "xlsx",
265
- "screenshotRef": "https://prnt.sc/u5BX1bsaaZ5S",
266
- "status": "active",
267
- "dateSelectionType": "multi_select_menu",
268
- "exportSteps": [
269
- "Open statement period dropdown",
270
- "Select all dates matching target YYYY-MM",
271
- "Click 'Xuất dữ liệu tổng quan đơn hàng'",
272
- "Click 'Xuất dữ liệu với bộ lọc hiện tại'",
273
- "Wait (long) → Download"
274
- ]
275
- },
276
- {
277
- "id": "platform_income",
278
- "name": "Income Sàn",
279
- "nameVi": "Thu nhập sàn TikTok",
280
- "platform": "tiktok",
281
- "url": "https://seller-vn.tiktok.com/finance/transactions?shop_region=VN&tab=settled_tab",
282
- "frequency": "monthly",
283
- "priority": true,
284
- "exportFormat": "excel",
285
- "fileExtension": "xlsx",
286
- "screenshotRef": "https://prnt.sc/oj8apfNx6mCH",
287
- "status": "active",
288
- "dateSelectionType": "core_picker",
289
- "exportSteps": [
290
- "Wait for 'Lịch sử xuất dữ liệu' to appear",
291
- "Click 'Xuất'",
292
- "Open date picker (SVG icon)",
293
- "Clear existing range (SVG click)",
294
- "Select first day → last day using core-picker-cell-in-view",
295
- "Click OK",
296
- "Click 'Xuất'",
297
- "Wait for 'Đang xuất' to complete",
298
- "Click 'Tải xuống'"
299
- ]
300
- },
301
- {
302
- "id": "platform_wallet",
303
- "name": "Sao kê số dư ví",
304
- "nameVi": "Sao kê ví TikTok",
305
- "platform": "tiktok",
306
- "url": "https://seller-vn.tiktok.com/finance/withdraw-new?is_new_connect=0&register_libra=&shop_region=VN",
307
- "frequency": "monthly",
308
- "priority": true,
309
- "exportFormat": "excel",
310
- "fileExtension": "xlsx",
311
- "screenshotRef": "https://prnt.sc/ESRF6bEhlbbu",
312
- "status": "active",
313
- "dateSelectionType": "core_picker",
314
- "exportSteps": [
315
- "Wait for 'Lịch sử xuất dữ liệu'",
316
- "Scroll down 500px",
317
- "Click 'Xuất'",
318
- "Open date picker → clear → select range",
319
- "Click OK → Export",
320
- "Wait for completion → Download"
321
- ]
322
- },
323
- {
324
- "id": "affiliate_orders",
325
- "name": "Báo cáo đơn hàng Affiliate",
326
- "nameVi": "Đơn hàng affiliate TikTok",
327
- "platform": "tiktok",
328
- "url": "https://affiliate.tiktok.com/product/order?shop_region=VN&order_type=1",
329
- "frequency": "daily_overwrite",
330
- "priority": true,
331
- "exportFormat": "excel",
332
- "fileExtension": "xlsx",
333
- "screenshotRef": "https://prnt.sc/4bmmSLHdm_wl",
334
- "status": "active",
335
- "dateSelectionType": "date_picker",
336
- "exportSteps": [
337
- "Select date range",
338
- "Click export"
339
- ]
340
- },
341
- {
342
- "id": "ads_dashboard",
343
- "name": "Ads TikTok Dashboard",
344
- "nameVi": "Bảng điều khiển quảng cáo TikTok",
345
- "platform": "tiktok",
346
- "url": "https://seller-vn.tiktok.com/ads-creation/dashboard",
347
- "frequency": "daily",
348
- "priority": true,
349
- "exportFormat": "excel",
350
- "fileExtension": "xlsx",
351
- "screenshotRef": "https://prnt.sc/eXGtbkNrlUQf",
352
- "status": "active",
353
- "dateSelectionType": "dashboard_filter",
354
- "exportSteps": [
355
- "Set date filter",
356
- "Download dashboard data"
357
- ]
358
- },
359
- {
360
- "id": "ads_cost",
361
- "name": "Báo cáo paid ads onsite - chi phí",
362
- "nameVi": "Chi phí quảng cáo TikTok",
363
- "platform": "tiktok",
364
- "url": "https://business.tiktok.com/manage/transaction?org_id=7384265942869524481",
365
- "frequency": "monthly",
366
- "priority": true,
367
- "exportFormat": "excel",
368
- "fileExtension": "xlsx",
369
- "screenshotRef": "https://prnt.sc/AcnxB06ZZKHV",
370
- "status": "in_progress",
371
- "dateSelectionType": "business_center",
372
- "exportSteps": [
373
- "Navigate to transaction history",
374
- "Set date range",
375
- "Export data"
376
- ]
377
- },
378
- {
379
- "id": "ads_revenue",
380
- "name": "Báo cáo paid ads onsite - doanh thu",
381
- "nameVi": "Doanh thu quảng cáo TikTok",
382
- "platform": "tiktok",
383
- "url": "https://business.tiktok.com/manage/transaction?org_id=7384265942869524481",
384
- "frequency": "monthly",
385
- "priority": true,
386
- "exportFormat": "excel",
387
- "fileExtension": "xlsx",
388
- "screenshotRef": "https://prnt.sc/rcC_Gy47r0XT",
389
- "status": "in_progress",
390
- "dateSelectionType": "business_center",
391
- "exportSteps": [
392
- "Navigate to transaction history (revenue tab)",
393
- "Set date range",
394
- "Export data"
395
- ]
396
- },
397
- {
398
- "id": "affiliate_invoice",
399
- "name": "Báo cáo hoá đơn affiliate",
400
- "nameVi": "Hoá đơn hoa hồng liên kết TikTok",
401
- "platform": "tiktok",
402
- "url": "https://seller-vn.tiktok.com/finance/invoice?shop_region=VN",
403
- "frequency": "monthly",
404
- "priority": true,
405
- "exportFormat": "excel",
406
- "fileExtension": "xlsx",
407
- "screenshotRef": "https://prnt.sc/W8kOcqiA6mmz",
408
- "status": "active",
409
- "dateSelectionType": "core_month_picker",
410
- "exportSteps": [
411
- "Wait for page load",
412
- "Click 'Biên nhận hoa hồng liên kết'",
413
- "Open month picker",
414
- "Select target month (Jan-Dec)",
415
- "Click OK",
416
- "Check if data exists",
417
- "If data: set 50/Page, get max pages, extract table per page",
418
- "Save each part as Excel"
419
- ]
420
- }
421
- ]
422
- }
@@ -1,3 +0,0 @@
1
- {
2
- "sessions": []
3
- }