@leejungkiin/awkit 1.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.
Files changed (139) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +146 -0
  3. package/VERSION +1 -0
  4. package/bin/awf.js +549 -0
  5. package/bin/awk.js +1759 -0
  6. package/core/AGENTS.md +39 -0
  7. package/core/GEMINI.md +202 -0
  8. package/core/GEMINI.md.bak +244 -0
  9. package/core/orchestrator.md +58 -0
  10. package/package.json +46 -0
  11. package/schemas/brain.schema.json +342 -0
  12. package/schemas/preferences.schema.json +95 -0
  13. package/schemas/session.schema.json +112 -0
  14. package/skill-packs/neural-memory/README.md +111 -0
  15. package/skill-packs/neural-memory/pack.json +35 -0
  16. package/skill-packs/neural-memory/schemas/brain-snapshot.json +167 -0
  17. package/skill-packs/neural-memory/skills/nm-memory-audit/SKILL.md +157 -0
  18. package/skill-packs/neural-memory/skills/nm-memory-evolution/SKILL.md +202 -0
  19. package/skill-packs/neural-memory/skills/nm-memory-intake/SKILL.md +135 -0
  20. package/skill-packs/neural-memory/skills/nm-memory-sync/SKILL.md +184 -0
  21. package/skill-packs/neural-memory/workflows/nm-import.md +73 -0
  22. package/skill-packs/neural-memory/workflows/nm-recall.md +67 -0
  23. package/skill-packs/neural-memory/workflows/nm-snapshot.md +69 -0
  24. package/skills/adaptive-language/SKILL.md +189 -0
  25. package/skills/ambient-brain/SKILL.md +314 -0
  26. package/skills/ambient-brain/brain-router.md +185 -0
  27. package/skills/ambient-brain/brain-templates.md +201 -0
  28. package/skills/auto-save/SKILL.md +223 -0
  29. package/skills/awf-adaptive-language/SKILL.md +189 -0
  30. package/skills/awf-context-help/SKILL.md +180 -0
  31. package/skills/awf-error-translator/SKILL.md +153 -0
  32. package/skills/awf-session-restore/SKILL.md +270 -0
  33. package/skills/awf-version-tracker/SKILL.md +32 -0
  34. package/skills/awf-version-tracker/scripts/snapshot.sh +22 -0
  35. package/skills/beads-manager/SKILL.md +323 -0
  36. package/skills/brainstorm-agent/SKILL.md +295 -0
  37. package/skills/context-help/SKILL.md +180 -0
  38. package/skills/error-translator/SKILL.md +153 -0
  39. package/skills/ios-engineer/SKILL.md +101 -0
  40. package/skills/memory-sync/SKILL.md +378 -0
  41. package/skills/memory-sync/memory-router.md +185 -0
  42. package/skills/memory-sync/memory-templates.md +201 -0
  43. package/skills/orchestrator/SKILL.md +193 -0
  44. package/skills/session-restore/SKILL.md +240 -0
  45. package/templates/CODEBASE.md +80 -0
  46. package/templates/brain.example.json +321 -0
  47. package/templates/preferences.example.json +21 -0
  48. package/templates/project-identity/android.json +28 -0
  49. package/templates/project-identity/backend-nestjs.json +24 -0
  50. package/templates/project-identity/expo.json +27 -0
  51. package/templates/project-identity/ios.json +27 -0
  52. package/templates/project-identity/web-nextjs.json +24 -0
  53. package/templates/session.example.json +53 -0
  54. package/templates/specs/design-template.md +166 -0
  55. package/templates/specs/requirements-template.md +65 -0
  56. package/templates/specs/tasks-template.md +132 -0
  57. package/templates/structures/android.txt +10 -0
  58. package/templates/structures/backend-nestjs.txt +6 -0
  59. package/templates/structures/expo.txt +9 -0
  60. package/templates/structures/ios.txt +9 -0
  61. package/templates/structures/web-nextjs.txt +6 -0
  62. package/templates/workflow_dual_mode_template.md +87 -0
  63. package/workflows/_uncategorized/README.md +339 -0
  64. package/workflows/_uncategorized/ads-creative.md +357 -0
  65. package/workflows/_uncategorized/ads-full-optimization.md +308 -0
  66. package/workflows/_uncategorized/ads-plan.md +247 -0
  67. package/workflows/_uncategorized/ads-user-analysis.md +337 -0
  68. package/workflows/_uncategorized/skill-health.md +35 -0
  69. package/workflows/_uncategorized/skill-rollback.md +35 -0
  70. package/workflows/ads/admob.md +62 -0
  71. package/workflows/ads/ads-analyst.md +201 -0
  72. package/workflows/ads/ads-audit.md +106 -0
  73. package/workflows/ads/ads-optimize.md +97 -0
  74. package/workflows/ads/ads-targeting.md +241 -0
  75. package/workflows/ads/adsExpert.md +160 -0
  76. package/workflows/ads/smali-ads-config.md +400 -0
  77. package/workflows/ads/smali-ads-flow.md +331 -0
  78. package/workflows/ads/smali-ads-interstitial.md +377 -0
  79. package/workflows/ads/smali-ads-native.md +382 -0
  80. package/workflows/context/auto-execution-workflow.md +291 -0
  81. package/workflows/context/auto-implement.md +211 -0
  82. package/workflows/context/codebase-sync.md +163 -0
  83. package/workflows/context/logic-reasoning-workflow.md +260 -0
  84. package/workflows/context/next.md +195 -0
  85. package/workflows/context/recap.md +212 -0
  86. package/workflows/context/save-brain.md +285 -0
  87. package/workflows/context/user-intent-analysis-workflow.md +206 -0
  88. package/workflows/expert/codeExpert.md +126 -0
  89. package/workflows/expert/debugExpert.md +136 -0
  90. package/workflows/expert/planExpert.md +112 -0
  91. package/workflows/git/cloudflare-tunnel.md +135 -0
  92. package/workflows/git/git-commit-workflow.md +75 -0
  93. package/workflows/git/hotfix.md +357 -0
  94. package/workflows/git/release-notes.md +160 -0
  95. package/workflows/git/rollback.md +52 -0
  96. package/workflows/git/smart-git-ops.md +103 -0
  97. package/workflows/lifecycle/brainstorm.md +377 -0
  98. package/workflows/lifecycle/code.md +663 -0
  99. package/workflows/lifecycle/debug.md +116 -0
  100. package/workflows/lifecycle/deploy.md +95 -0
  101. package/workflows/lifecycle/init.md +152 -0
  102. package/workflows/lifecycle/master-code-workflow.md +300 -0
  103. package/workflows/lifecycle/migration.md +196 -0
  104. package/workflows/lifecycle/plan.md +91 -0
  105. package/workflows/lifecycle/refactor.md +165 -0
  106. package/workflows/lifecycle/run.md +52 -0
  107. package/workflows/lifecycle/test.md +91 -0
  108. package/workflows/meta/customize.md +346 -0
  109. package/workflows/meta/file-protection-rules.md +129 -0
  110. package/workflows/meta/help.html +350 -0
  111. package/workflows/meta/project-identity-enforcement.md +180 -0
  112. package/workflows/mobile/app-analysis.md +64 -0
  113. package/workflows/mobile/maestro-qa-workflow.md +470 -0
  114. package/workflows/mobile/maestro-test-workflow.md +84 -0
  115. package/workflows/mobile/structure-clean-architect.md +271 -0
  116. package/workflows/mobile/turbo-mobile-build.md +190 -0
  117. package/workflows/quality/accessibility-audit.md +311 -0
  118. package/workflows/quality/audit.md +217 -0
  119. package/workflows/quality/bug-hunter.md +243 -0
  120. package/workflows/quality/code-janitor.md +209 -0
  121. package/workflows/quality/code-quality-rules.md +132 -0
  122. package/workflows/quality/performance-audit.md +343 -0
  123. package/workflows/quality/project-audit.md +61 -0
  124. package/workflows/quality/self-healing-test.md +192 -0
  125. package/workflows/quality/ui-review.md +130 -0
  126. package/workflows/quality/ux-audit.md +213 -0
  127. package/workflows/quality/visual-debug.md +34 -0
  128. package/workflows/roles/oracle.md +267 -0
  129. package/workflows/roles/product-manager-workflow.md +52 -0
  130. package/workflows/roles/qa-engineer-workflow.md +41 -0
  131. package/workflows/roles/tech-lead-workflow.md +45 -0
  132. package/workflows/roles/ui-ux-designer-workflow.md +42 -0
  133. package/workflows/roles/vibe-coding-master-workflow.md +52 -0
  134. package/workflows/ui/app-screen-analyzer.md +152 -0
  135. package/workflows/ui/create-feature.md +332 -0
  136. package/workflows/ui/create-spec-architect.md +184 -0
  137. package/workflows/ui/design-to-ui.md +308 -0
  138. package/workflows/ui/ui-first-methodology.md +279 -0
  139. package/workflows/ui/visualize.md +298 -0
@@ -0,0 +1,377 @@
1
+ ---
2
+ description: 📱 Tích hợp Interstitial Ads vào APK mod - Tận dụng library có sẵn
3
+ ---
4
+
5
+ # Smali Interstitial Ads Integration
6
+
7
+ > **🎯 Mục tiêu**: Tích hợp Interstitial Ads bằng cách tận dụng ads library có sẵn trong APK.
8
+
9
+ ---
10
+
11
+ ## 🔍 Phase 1: Discovery - Tìm Ads Library có sẵn
12
+
13
+ ### 1.1. Scan toàn bộ cấu trúc
14
+
15
+ **Pattern 1: Tìm theo tên thư mục**
16
+ ```bash
17
+ # Tìm các thư mục có chứa "ad"
18
+ find smali* -type d -iname "*ad*"
19
+
20
+ # Patterns thường gặp:
21
+ # - */ads/, */adslib/, */admanager/
22
+ # - */admob/, */admod/, */adsdk/
23
+ # - */advertisement/, */adnetwork/
24
+ ```
25
+
26
+ **Pattern 2: Tìm theo package Google**
27
+ ```bash
28
+ # AdMob SDK chính thống
29
+ find smali* -path "*/com/google/android/gms/ads/*" -type d
30
+
31
+ # Firebase Ads
32
+ find smali* -path "*/com/google/firebase/ads/*" -type d
33
+ ```
34
+
35
+ **Pattern 3: Tìm theo custom wrapper**
36
+ ```bash
37
+ # Tìm trong package chính của app
38
+ find smali*/{main_package}/* -type d -iname "*ad*"
39
+ ```
40
+
41
+ ### 1.2. Identify Interstitial Components
42
+
43
+ **Search Strategy:**
44
+ ```bash
45
+ # Tìm file có chứa "Inter" và liên quan đến ad
46
+ find smali* -name "*Inter*.smali" | xargs grep -l "Lcom/google/android/gms/ads"
47
+
48
+ # Tìm theo keyword khác
49
+ find smali* -name "*.smali" | xargs grep -l "interstitial\|InterstitialAd"
50
+
51
+ # Tìm theo usage pattern
52
+ find smali* -name "*.smali" | xargs grep -l "loadInterstitialAd\|showInterstitialAd"
53
+ ```
54
+
55
+ **Common class names (chỉ tham khảo):**
56
+ - `*InterstitialAd*.smali`
57
+ - `*InterAd*.smali`
58
+ - `*FullscreenAd*.smali`
59
+ - `*AdManager*.smali` (có thể chứa inter logic)
60
+
61
+ ### 1.3. Reverse Engineer Implementation
62
+
63
+ **Step 1: Jadx analysis**
64
+ ```bash
65
+ jadx-gui target.apk
66
+ ```
67
+
68
+ **Tìm kiếm:**
69
+ 1. Search "InterstitialAd" trong jadx
70
+ 2. Xem existing usage trong app
71
+ 3. Document class hierarchy
72
+ 4. Note down package structure
73
+
74
+ **Step 2: Document API**
75
+ ```
76
+ [Findings Template]
77
+
78
+ Ads Library Location: smali_classes*/{discovered_path}/
79
+ Interstitial Class: {ClassName}.smali
80
+ Package: {full.package.name}
81
+
82
+ Methods Found:
83
+ - Constructor: <init>(...)
84
+ - Load: {methodName}(...)
85
+ - Show: {methodName}(...)
86
+ - Check Ready: {methodName}()
87
+
88
+ Callbacks:
89
+ - Interface: {CallbackInterfaceName}
90
+ - Methods: onAdLoaded(), onAdClosed(), etc.
91
+
92
+ Current Usage:
93
+ - Used in: {ActivityName}.smali
94
+ - Called from: {methodName}()
95
+ ```
96
+
97
+ ---
98
+
99
+ ## 📦 Phase 2: API Analysis
100
+
101
+ ### 2.1. Understand Method Signatures
102
+
103
+ **Sử dụng jadx để xem Java code:**
104
+ ```java
105
+ // Example pattern (structure varies)
106
+ public class InterstitialAdHelper {
107
+ public void init(Context context, String adId);
108
+ public void loadAd();
109
+ public void show(Activity activity);
110
+ public boolean isReady();
111
+ public void setListener(AdListener listener);
112
+ }
113
+ ```
114
+
115
+ **Convert to Smali signatures:**
116
+ ```smali
117
+ .method public init(Landroid/content/Context;Ljava/lang/String;)V
118
+ .method public loadAd()V
119
+ .method public show(Landroid/app/Activity;)V
120
+ .method public isReady()Z
121
+ .method public setListener(L{package}/AdListener;)V
122
+ ```
123
+
124
+ ### 2.2. Identify Dependencies
125
+
126
+ **Check AdMob presence:**
127
+ ```bash
128
+ # Core AdMob classes
129
+ ls smali*/com/google/android/gms/ads/ 2>/dev/null
130
+
131
+ # If missing, need to copy from:
132
+ # - Another APK with AdMob
133
+ # - Extract from Google Play Services AAR
134
+ ```
135
+
136
+ **Check custom wrappers:**
137
+ ```bash
138
+ # Tìm dependency classes
139
+ grep -r "import.*AdRequest\|import.*InterstitialAd" smali*/ | head -20
140
+ ```
141
+
142
+ ---
143
+
144
+ ## 🔧 Phase 3: Wrapper Creation
145
+
146
+ ### 3.1. Tạo Wrapper Class (Option)
147
+
148
+ **Mục đích**: Standardize API để dễ sử dụng
149
+
150
+ ```
151
+ {SDK_DIR}/ads/InterstitialWrapper.smali
152
+ ```
153
+
154
+ **Chức năng:**
155
+ - Wrap existing library
156
+ - Handle lifecycle
157
+ - Provide clean API
158
+ - Manage ad caching
159
+
160
+ **Methods cần có:**
161
+ ```
162
+ init(Context, String adId) → Initialize
163
+ load() → Load ad
164
+ show(Activity) → Show ad
165
+ isReady() → Check ready state
166
+ destroy() → Cleanup
167
+ ```
168
+
169
+ ### 3.2. State Management
170
+
171
+ **Track states:**
172
+ - `NOT_LOADED` - Chưa load
173
+ - `LOADING` - Đang load
174
+ - `LOADED` - Đã load, ready
175
+ - `SHOWING` - Đang hiển thị
176
+ - `CLOSED` - Đã đóng
177
+
178
+ **Implementation**: Dùng enum hoặc int constants
179
+
180
+ ---
181
+
182
+ ## 🎯 Phase 4: Integration Points
183
+
184
+ ### 4.1. Load Ad - Khi nào?
185
+
186
+ **Strategy 1: Pre-load sớm**
187
+ ```
188
+ Application.onCreate() → Load ad
189
+ Splash.onCreate() → Load ad
190
+ ```
191
+ **Pros**: Ad sẵn sàng khi cần
192
+ **Cons**: Tốn resources nếu user không trigger
193
+
194
+ **Strategy 2: On-demand**
195
+ ```
196
+ Before navigation → Load ad → Show ad
197
+ ```
198
+ **Pros**: Tiết kiệm resources
199
+ **Cons**: Có delay khi show
200
+
201
+ ### 4.2. Show Ad - Ở đâu?
202
+
203
+ **Theo `/smali-ads-flow`:**
204
+ - Sau Splash (first launch)
205
+ - Sau Onboarding (first launch)
206
+ - Random 3-5 lần (return visit)
207
+
208
+ **Implementation:**
209
+ ```
210
+ Location: SplashActivity.navigateToMain()
211
+ Action: Insert show ad logic
212
+ → if shouldShowAd():
213
+ → interstitialWrapper.show(this)
214
+ → onAdClosed: navigate to next screen
215
+ → else:
216
+ → navigate directly
217
+ ```
218
+
219
+ ### 4.3. Handle Callbacks
220
+
221
+ **OnAdClosed callback:**
222
+ - Navigate to next screen
223
+ - Resume app flow
224
+ - Load next ad (pre-cache)
225
+
226
+ **OnAdFailedToLoad:**
227
+ - Fallback: skip ad, continue flow
228
+ - Log error for debugging
229
+ - Retry với exponential backoff?
230
+
231
+ ---
232
+
233
+ ## 🔌 Phase 5: Hook Implementation
234
+
235
+ ### 5.1. Hook Point Template
236
+
237
+ **Generic pattern:**
238
+ ```smali
239
+ # Original code
240
+ .method private navigateToNextScreen()V
241
+ # ... navigation logic ...
242
+ .end method
243
+ ```
244
+
245
+ **After injection:**
246
+ ```smali
247
+ .method private navigateToNextScreen()V
248
+ # Check if should show ad
249
+ invoke-static {p0}, {AdHelper};->shouldShowInterAd()Z
250
+ move-result v0
251
+
252
+ if-eqz v0, :skip_ad
253
+
254
+ # Show inter ad
255
+ invoke-static {p0}, {InterWrapper};->show(Activity)V
256
+ # Ad callback will handle navigation
257
+ return-void
258
+
259
+ :skip_ad
260
+ # Original navigation logic
261
+ # ...
262
+ .end method
263
+ ```
264
+
265
+ ### 5.2. Callback Handler
266
+
267
+ **Create callback class:**
268
+ ```
269
+ {SDK_DIR}/ads/InterstitialCallback.smali
270
+ ```
271
+
272
+ **Implement:**
273
+ ```
274
+ onAdClosed() {
275
+ // Resume navigation
276
+ navigateToNextScreen()
277
+ }
278
+
279
+ onAdFailedToShow() {
280
+ // Fallback
281
+ navigateToNextScreen()
282
+ }
283
+ ```
284
+
285
+ ---
286
+
287
+ ## ✅ Phase 6: Testing & Validation
288
+
289
+ ### 6.1. Functional Tests
290
+
291
+ | Test Case | Expected | Command |
292
+ |-----------|----------|---------|
293
+ | **Load Success** | Ad loads, isReady=true | Monitor logcat |
294
+ | **Show Success** | Ad displays fullscreen | Visual check |
295
+ | **Callback Fired** | onAdClosed called | Check logs |
296
+ | **Navigation** | Nav to next screen after ad | Flow test |
297
+ | **No Network** | Fallback, skip ad | Airplane mode test |
298
+
299
+ ### 6.2. Integration Tests
300
+
301
+ **With `/smali-ads-flow`:**
302
+ - First launch: Show after Splash ✓
303
+ - First launch: Show after Onboarding ✓
304
+ - Return visit: Random 3-5 times ✓
305
+
306
+ ### 6.3. Debug Commands
307
+
308
+ ```bash
309
+ # Monitor ad events
310
+ adb logcat | grep -E "InterstitialAd|AdMob|onAd"
311
+
312
+ # Test ad with test ID
313
+ # Replace ad unit ID with test ID:
314
+ # ca-app-pub-3940256099942544/1033173712 (Android Test Inter)
315
+
316
+ # Force show ad (for testing)
317
+ # Modify shouldShowInterAd() to always return true
318
+ ```
319
+
320
+ ---
321
+
322
+ ## 📋 Implementation Checklist
323
+
324
+ ### Discovery
325
+ - [ ] Tìm được ads library trong APK
326
+ - [ ] Xác định Interstitial class
327
+ - [ ] Document API methods
328
+ - [ ] Check dependencies đầy đủ
329
+
330
+ ### Wrapper (Optional)
331
+ - [ ] Tạo wrapper class
332
+ - [ ] Implement init/load/show
333
+ - [ ] Handle state management
334
+ - [ ] Test wrapper riêng lẻ
335
+
336
+ ### Integration
337
+ - [ ] Xác định hook points (từ `/smali-ads-flow`)
338
+ - [ ] Inject load ad logic
339
+ - [ ] Inject show ad logic
340
+ - [ ] Implement callbacks
341
+
342
+ ### Testing
343
+ - [ ] Load ad thành công
344
+ - [ ] Show ad thành công
345
+ - [ ] Callback navigation đúng
346
+ - [ ] Fallback khi no network
347
+ - [ ] Integration với flow logic
348
+
349
+ ---
350
+
351
+ ## 🔗 Related Resources
352
+
353
+ ### Workflows
354
+ - `/smali-ads-flow` - Main flow logic
355
+ - `/smali-ads-native` - Native ads
356
+ - `/smali-ads-config` - Remote config
357
+
358
+ ### Skills
359
+ - `apk-modifier` - Smali techniques
360
+
361
+ ### References
362
+ - [AdMob Interstitial Docs](https://developers.google.com/admob/android/interstitial)
363
+ - [AdMob Test Ads](https://developers.google.com/admob/android/test-ads)
364
+
365
+ ---
366
+
367
+ ## 💡 Tips & Best Practices
368
+
369
+ 1. **Reuse existing library**: Tận dụng library có sẵn thay vì viết từ đầu
370
+ 2. **Test ID first**: Dùng test ad ID khi debug để tránh invalid traffic
371
+ 3. **Fallback gracefully**: Luôn có fallback khi ad fail
372
+ 4. **Pre-load smart**: Load ad sớm nhưng đừng lãng phí resources
373
+ 5. **Respect ad policies**: Không force click, không spam ads
374
+
375
+ ---
376
+
377
+ **⚠️ Quan trọng**: Tuân thủ AdMob policies để tránh bị ban account!